下面是我的代码:
type SelectProperties<T, K extends keyof T> = {
[P in K]: T[P]
};
但是如果我将代码更改为:
type SelectProperties<T, K> = {
[P in K]: T[P]
};
然后它无法编译,我认为原因可能是如果我们不使用T
,K extends keyof T
可能没有有效的属性名称,这很公平,这是有道理的。
但是,如果我有如下代码,为什么它仍然无法编译:
type SelectProperties<K> = { //doesn't compile
[P in K]: any
};
它在代码和逻辑上看起来非常有效,那么为什么不编译呢?