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號