假设我有这样的界面:
interface Identity<TValue> {
readonly value: TValue;
}
现在我要为其创建存储空间
class IdentityStorage<TIdentity> {
}
但是我想为TIdentity
类型设置类型约束。我该怎么做?我已经尝试过这样的事情
class IdentityStorage<TIdentity extends Identity> {}
class IdentityStorage<TIdentity<TValue> extends Identity<TValue>> {}
但是它们都不起作用。如何设置这种约束?
答案 0 :(得分:3)
您可能要使用两个类型参数,如:
class IdentityStorage<TValue, TIdentity extends Identity<TValue>> {}
这表示您想要的确切约束。如果您愿意放宽自己的约束条件,可以执行类似
的操作class IdentityStorage<TIdentity extends Identity<any>> {}
也会起作用,但可能会允许您不需要的某些东西(取决于Identity<TValue>
中的多少属性取决于TValue
以及以何种方式……如上所述,其中只有一个属性输入TValue
,这样就可以了。)
希望有帮助。祝你好运!