[英]Unable to assign a default value using Generics in Typescript
我在 Typescript 中有这段代码。
export class CommonResponse<T extends EmptyOutputBody> {
output: T = new EmptyOutputBody();
successful: boolean = false;
responseCode: number = 200;
}
export class EmptyOutputBody {
alerts: string[] = [];
}
我想为通用类型属性output
分配一个默认值。 通用类型T
扩展EmptyOutputBody
,我认为分配通用类型T
的父 class ( EmptyOutputBody
)的 object 对我有用。 但是这段代码在output
属性上给了我错误。 它说
类型“EmptyOutputBody”不可分配给类型“T”。 “EmptyOutputBody”可分配给“T”类型的约束,但“T”可以用约束“EmptyOutputBody”的不同子类型来实例化
有人可以帮我在这种情况下如何实例化泛型类型,或者如何向output
提供初始值,该值应该是T
或EmptyOutputBody
类型。
对于初始分配,在声明时,您可以使用 as 语法,如下所示。
有一个巨大的讨论,你可以在这里阅读更多。
https://github.com/microsoft/TypeScript/issues/36821
export class CommonResponse<T extends EmptyOutputBody> {
output: T = new EmptyOutputBody() as T; // Modify here
successful: boolean = false;
responseCode: number = 200;
}
export class EmptyOutputBody {
alerts: string[] = [];
}
const res = new CommonResponse()
res.output = new EmptyOutputBody() // NO issue
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.