[英]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 實用程序類型來實現此目的。
Parameters<Type>
: https ://www.typescriptlang.org/docs/handbook/utility-types.html#parameterstypeReturnType<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.