I am attempting to constrain an array's values to particular keys of an interface:
interface Foo {
bar: string;
baz: number;
foo: string;
}
type ExtractArrayOfKeys<T, K extends keyof T> = Pick<T, K>[];
const keyArray: ExtractArrayOfKeys<Foo, "bar" | "baz"> = ["bar", "baz"]; // Error: Type 'string' is not assignable to type 'Pick<Foo, "bar" | "baz">'
Array<keyof Foo>barandbazas valid entries, but disallowfoo?