[英]TypeScript generic constraints to multiple primitive types
給定此功能:
myFunc(object: string | null): string | null {}
我想這個功能是返回類型的string
時,對象是string
,返回類型string | null
對象為string | null
類型時為string | null
string | null
。
我努力了:
myFunc<T extends string | null>(object: T): T {
return "returnValue"; //Type '"returnValue"' is not assignable to type 'T'.
}
和
myFunc<T extends string & null>(object: T): T {
return "returnValue"; //Type '"returnValue"' is not assignable to type 'T'.
}
兩者都產生相同的編譯錯誤。 我沒有找到正確的語法來做到這一點。
我不敢相信我會真正建議重載,因為我花了很多時間解釋如何避免重載...但是重載將是建模的好方法!
class Example {
myFunc(obj: string): string;
myFunc(obj: string | null): string | null;
myFunc(obj: string | null): string | null {
return "returnValue";
}
}
function test(a: string | null, b: string) {
const example = new Example();
// resultA: string | null
const resultA = example.myFunc(a);
// resultB: string
const resultB = example.myFunc(b);
}
在上面的示例中,將返回類型映射到輸入類型,因此, 如果您在啟用了嚴格的null檢查的情況下運行,則 resultA
和resultB
具有預期的類型。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.