Closed
Description
TypeScript Version: 3.5.1
Search Terms:
Code
interface Foo {
prop1: { value: number }[];
prop2: string[];
}
function getFoo<T extends keyof Foo>(key: T): Foo[T] | undefined {
if (key === "prop1") {
return [{ value: 1 }]; // Error here
}
}
const bar = getFoo("prop1"); // has correct type
Expected behavior:
No error. This used to work in 3.4.5
Actual behavior:
Type '{ value: number; }[]' is not assignable to type 'Foo[T]'.
Type '{ value: number; }[]' is not assignable to type '{ value: number; }[] & string[]'.
Type '{ value: number; }[]' is not assignable to type 'string[]'.
Type '{ value: number; }' is not assignable to type 'string'.