1 export interface IUser {
2 age?: number;
3 }
4
5
6 type GetRequiredKeys_A<T> = {
7 [K in keyof T]-?:
8 T[K] extends Required<T>[K]
9 ? K
10 : never
11 }[keyof T]
12
13 type GetRequiredKeys_B<T> = {
14 [K in keyof T]:
15 T[K] extends Required<T>[K]
16 ? K
17 : never
18 }[keyof T]
age?: number
作为可选属性,ts默认会加入一个 undefined, 相当于 number | undefined.
type keys = IUser['age'] // type keys = number | undefined
[K in keyof T]-?: 去除可行属性是必须的。
浙公网安备 33010602011771号