Closed
Description
TypeScript Version: 2.8.0-dev.20180214
Code
type A = { A: number; B: number };
type ExcludeB<T> = Exclude<keyof T, 'B'>;
type B = ExcludeB<A>; // 'A' | 'B'
type C = Exclude<keyof A, 'B'>; // 'A'
function stripB<T>(key: T): Pick<T, Exclude<keyof T, 'B'>> {
return null!;
}
stripB({A: 1, B: 1}) // -> {A: number, B: number}