【发布时间】:2018-06-24 04:15:28
【问题描述】:
假设我有一个这样的界面:
interface SomeInterface {
field1: string;
field2: number;
field3: string;
field4: SomeOtherType;
}
我想要一种类型,可以提取所有键的值是特定类型的:
type ExtractFieldsOfType<Obj extends {}, Type> = // implementation
ExtractFieldsOfType<SomeInterface, string> // "field1" | "field3"
ExtractFieldsOfType<SomeInterface, number> // "field2"
ExtractFieldsOfType<SomeInterface, SomeOtherType> // "field4"
这样写可以吗?我正在编写一个按键名对对象进行操作的函数,但它应该只允许具有特定值的键。所以最好通过类型系统来表达。
【问题讨论】:
-
简单地用作地图。
标签: typescript