如何在没有类型定义的情况下定义泛型类型 'has property' 约束?
How to define generic type 'has property' constrint without type definition?
假设我们必须执行以下操作:
export class Class1<T> {
public constructor(param1: T) {
param1.prop1 = 1; // TS error: T doesn't have property 'prop1'
}
}
鉴于我们无法从单个碱基 interface
`class`` 继承所有可能的 param1
,如何限制 T
?
我试过T extends { prop1: number }
,但它是 TS 的不正确语法。
我在问题中给出的解决方案是正确的:
export class Class1<T extends { prop1: number }> {
public constructor(param1: T) {
param1.prop1 = 1; // No TS error now
}
}
看来我在使用 VS Code 的内置错误检查器时遇到了一些问题。
假设我们必须执行以下操作:
export class Class1<T> {
public constructor(param1: T) {
param1.prop1 = 1; // TS error: T doesn't have property 'prop1'
}
}
鉴于我们无法从单个碱基 interface
`class`` 继承所有可能的 param1
,如何限制 T
?
我试过T extends { prop1: number }
,但它是 TS 的不正确语法。
我在问题中给出的解决方案是正确的:
export class Class1<T extends { prop1: number }> {
public constructor(param1: T) {
param1.prop1 = 1; // No TS error now
}
}
看来我在使用 VS Code 的内置错误检查器时遇到了一些问题。