打字稿超级类型

达赫施泰因

我在寻找一种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 ...
}
jo_va

您必须使用指定父对象,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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章