簡體   English   中英

Typescript 中的 function 聲明的可重用類型注釋?

[英]Reusable type annotation for function declaration in Typescript?

type Func = (foo:string) => void

// function expression
const myFunctionExpression:Func = function(foo) {
  console.log(foo)
}

在上面的 Typescript 片段中,我使用類型別名來注釋 function 表達式中的變量。

類型別名:

type Func = (foo:string) => void

可在另一個 function 表達式中重復使用以減少重復。

我的問題是:有沒有辦法重用這種類型的別名來注釋 function 聲明?

// function declaration
function myFunctionDeclaration(foo:string):void {
  console.log(foo)
}

在網上搜索后,我似乎找不到這樣的語法,我錯過了什么?

謝謝

更新:

在撰寫本文時,有一張關於 github 請求此功能的票:建議:function 聲明的類型注釋和接口#22063 (感謝@jcalz 的評論)

在撰寫本文時(TypeScript 3.4),沒有辦法將類型應用於函數聲明。

您可以使用 3.1 版提供的 typescript 實用程序類型來實現此目的。

  1. Parameters<Type>https ://www.typescriptlang.org/docs/handbook/utility-types.html#parameterstype
  2. ReturnType<Type>https ://www.typescriptlang.org/docs/handbook/utility-types.html#returntypetype

適合問題的示例:

打字稿沙箱

type Func = (foo:string) => void

// function expression
const myFunctionExpression:Func = function(foo) {
  console.log(foo)
}
// function declaration
function myFunctionDeclaration(...[foo]: Parameters<Func>): ReturnType<Func> {
  console.log(foo)
}

暫無
暫無

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

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