type Func = (foo:string) => void
// function expression
const myFunctionExpression:Func = function(foo) {
console.log(foo)
}
Run Code Online (Sandbox Code Playgroud)
在上面的 Typescript 片段中,我使用类型别名来注释函数表达式中的变量。
类型别名:
type Func = (foo:string) => void
Run Code Online (Sandbox Code Playgroud)
可在另一个函数表达式中重用以减少重复。
我的问题是:有没有办法重用这个类型别名来注释函数声明?
// function declaration
function myFunctionDeclaration(foo:string):void {
console.log(foo)
}
Run Code Online (Sandbox Code Playgroud)
在网上搜索后,我似乎找不到这样的语法,我错过了什么?
谢谢
更新:
在撰写本文时,github 上有一张请求此功能的票证:建议:函数声明的类型注释和接口 #22063(感谢来自 @jcalz 的评论)
您可以使用 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)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
470 次 |
| 最近记录: |