# 89-获取必填属性键值

# 题目描述

实现高级 util 类型RequiredKeys<T>,该类型返回 由 T 中所有必需属性的键组成的一个联合类型。

例如

type Result = RequiredKeys<{ foo: number; bar?: string }>;
// expected to be “foo”

# 分析

之前已经讨论过获取必填属性,那么这题只需要把属性值取出来即可。送分题啦。

# 题解

type RequiredKeys<T> = keyof {
  [P in keyof T as T[P] extends Required<T>[P] ? P : never]: any;
};

# 知识点

  1. keyof
Last Updated: 2023/5/16 06:00:28