簡體   English   中英

什么時候需要在TypeScript中聲明返回函數類型?

[英]When is it necessary to declare return function type in TypeScript?

如果我具有以下基本功能, typescript可以自動推斷返回類型。

function myFunction(x: number, y: number) {
  return x * y;
}

它是唯一有用的聲明返回類型,如果typescript ,因為一些其他的呼叫泄漏無法推斷返回類型any ,所以它不能作出正確的推論?

function myFunction(x: number, y: number) {
  return x * y || callThatReturnsAny();
}

在這種情況下,如果我知道callThatReturnsAny()返回一個number我想輸入它

function myFunction(x: number, y: number): number {
  return x * y || callThatReturnsAny();
}

盡管最好的解決方案只是鍵入callThatReturnsAny()以便typescript可以進行推斷? 但是在那種情況下,您何時應該真正使用顯式返回類型呢?

我打開noImplicitAny並避免在幾乎所有情況下(函數除外)添加類型注釋。 為什么? 因為我不想在以下情況下意外返回聯合類型:

  1. 我忘了返回一個值
  2. 我返回了錯誤類型的值

例如,如果我開始的時候,我的日子會有所不同:

function example(a: number, b: number) {

VS

function example(a: number, b: number): number {

接下來會發生什么...

function example(a: number, b: number) {
    if (a > 5) {
        return 5;
    }

    if (b > a) {
        return 'b';
    }
}

我的退貨類型現在是number | string | undefined number | string | undefined number | string | undefined

如果使用返回類型注釋,則會獲得其他幫助*。

它可以幫助您返回正確的類型:

返回類型錯誤

在嚴格模式下,它確保您每次都返回一些內容。

缺少退貨(嚴格模式)

*如果您需要其他幫助,則還將打開所有嚴格的要求

暫無
暫無

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

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