type TestType<Keys extends string> = string extends Keys ? Record<Keys, string> : Record<Keys, string>
function inferHelper<Keys extends string>(data: TestType<Keys>) {
return data;
}
export const a = inferHelper({
// key1 is inferred to be value1 here
key1: "value1"
})
🙁 Actual behavior
ts2345
Argument of type '{ key1: string; }' is not assignable to parameter of type 'Record<"value1", string>'.
Object literal may only specify known properties, and 'key1' does not exist in type 'Record<"value1", string>'
🙂 Expected behavior
no error, and the record is inferred as Record<"key1", string>
Bug Report
🔎 Search Terms
inference generic extends record
🕗 Version & Regression Information
⏯ Playground Link
Playground link with relevant code
💻 Code
🙁 Actual behavior
ts2345
🙂 Expected behavior
no error, and the record is inferred as
Record<"key1", string>