TypeScript 中可以使用三元表达式
想要在 TypeScript 中获取非函数属性的键,可以使用三元表达式。比如你想定义一个除了函数以外的类型,可以使用以下代码:
或者这样写
这个类型定义是一个条件类型,它的作用是:
- 如果传入的类型 是一个函数类型,那么它就会返回 。 类型在联合类型中会被自动移除,这让它非常适合用来“过滤”掉函数。
- 如果传入的类型 不是一个函数类型,那么它就会返回 本身。
从对象中提取非函数属性的键
挑选出所有非函数属性的键
这个类型的工作原理是:
- 遍历 的所有键。
- 检查属性 的类型是否是函数。
- 如果它是函数,则返回 。 类型在联合类型中会被移除。
- 如果它不是函数,则返回键 本身。
- 最后, 会将所有返回的类型组合成一个联合类型。由于 会被移除,最终结果就是所有非函数键的联合类型。