实现一个 OptionalKeys 工具类型,用来获取对象类型中声明的可选属性。具体的使用示例如下所示:
type Person = {
id: string;
name: string;
age: number;
from?: string;
speak?: string;
};
type OptionalKeys<T> = // 你的实现代码
type PersonOptionalKeys = OptionalKeys<Person> // "from" | "speak"
答案:
type OptionalKeys<T, K = keyof T> = K extends keyof T
? undefined extends T[K]
? K
: never
: never
终点在于 K = keyof T,从20题得到的解题思路。