我想知道打字稿中是否可能有类似内容:
func<T,V>(prop: keyof T: V)
interface IIntf{
prop1: string,
prop2: number
}
func<IIntf, string>(‘prop1’) //OK
func<IIntf, string>(‘prop2’) //NOT OK (prop2 is of type number)
答案 0 :(得分:1)
使用映射的类型和类型推断是可能的,例如以下类型将仅提取具有指定类型的键:
type ObjectKeysWithType<T, V> = {
[K in keyof T]: T[K] extends V ? K : never
}[keyof T];
这里的理由是:
T[K] extends
)匹配(V
)相匹配时,才将其映射到值{ .. }[keyof T