我在寻找一种T的超级类型吗?就像是:
foo<T>(obj: Super<T>): T
可以说T是具有{用户名,密码}属性的对象。
超级<T>,其属性为{用户名,密码,confirmPassword}。
函数签名示例:
function excludeKeys<T>(obj: Super<T>, excludeKeys: string[]): T {
// Exclude key/pairs form original object ...
}
您必须使用指定父对象,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 { ... }
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句