这种类型定义可以统一吗?

时间:2020-01-18 09:00:33

标签: typescript

我创建了:

type NumberFields<T, K extends keyof T> = T[K] extends number ? K : never;
type AnsFields<T> = SomeOtherList & NumberFields<T, keyof T>;

SomeOtherList是预定义的字段名称,例如'foo' | 'bar'

类型定义可以正常工作,但我只需要AnsFields<T>。我可以内联NumberFieldsAnsFields的定义吗?我找不到方法。

1 个答案:

答案 0 :(得分:1)

是的,您可以内联NumberFields,但是我发现这不太可读:

type AnsFields<T> = SomeOtherList &
    { [K in keyof T]: T[K] extends number ? K : never }[keyof T];

基本上,我们是通过键来内联查找

相关问题