[英]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.