簡體   English   中英

TypeScript 條件返回值類型?

[英]TypeScript conditional return value type?

function f(x:boolean|string) { return x }
f(true) // boolean | string

為什么打字稿不能理解返回值是布爾值?

function f(x:boolean|string) {
    return typeof x === 'boolean' ? true : 'str'
}
f(true) // boolean | string

這也不能理解。

我是否需要手動設置函數重載定義?

Typescript 不會根據函數中的類型保護推斷不同的返回類型。 但是,您可以定義多個函數簽名,讓編譯器知道輸入參數類型和結果類型之間的聯系:

function ff(x: boolean): boolean;
function ff(x: string): string;

// Implementation signature, not publicly visible
function ff(x: boolean | string): boolean | string {
    return typeof x === 'boolean' ? true : 'str'
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM