我正在寻找一种T的超级类型? 像这样:
foo<T>(obj: Super<T>): T
可以说T是一个对象,其属性为 {用户名,密码} 。
超级
函数签名示例:
function excludeKeys<T>(obj: Super<T>, excludeKeys: string[]): T {
// Exclude key/pairs form original object ...
}
答案 0 :(得分:2)
您必须使用T extends U
指定父级,以便TypeScript可以推断父级类型:
function foo<T extends U, U>(obj: U): T { ... }
或者您可以尝试以下操作:
type Super<T> = T extends infer U ? U : object;
function foo<T>(obj: Super<T>): T { ... }