![](/img/trans.png)
[英]TypeScript: map object types containing string unions into return result
[英]Does overload work with unions of string types in typescript
我不確定為什么打字稿編譯器不接受
type Data = 'name' | 'age'
function f(data: 'age'): number;
function f(data: 'name'): string;
function f(data: Data) {
if (data == 'name') return 'Charlie'
if (data == 'age') return 8
}
問題在於您的函數實現具有隱式的返回類型,因此具有顯式返回類型的重載無法映射到原始函數。 如果將顯式返回類型添加到f()
,則重寫將起作用:
type Data = 'name' | 'age'
function f(data: 'age'): number;
function f(data: 'name'): string;
function f(data: Data): string | number | void {
if (data == 'name') return 'Charlie'
if (data == 'age') return 8
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.