Dan*_*ker 22 arrays function typescript
更新 - 此问题的上下文是预先TypeScript 1.4.从那个版本开始,我的第一个猜测得到了语言的支持.请参阅答案的更新.
我可以声明f是一个接受字符串并返回字符串的函数:
var f : (string) => string
Run Code Online (Sandbox Code Playgroud)
我可以声明g是一个字符串数组:
var g : string[]
Run Code Online (Sandbox Code Playgroud)
如何声明h为"接受字符串并返回字符串的函数"的数组?
我的第一个猜测:
var h : ((string) => string)[]
Run Code Online (Sandbox Code Playgroud)
这似乎是一个语法错误.如果我拿掉额外的括号,那么它是一个从字符串到字符串数组的函数.
Dan*_*ker 40
我想到了.问题是=>函数类型文字本身只是语法糖而不想构成[].
正如规范所说:
表单的函数类型文字
(ParamList)=> ReturnType
完全等同于对象类型文字
{(ParamList):ReturnType}
所以我想要的是:
var h : { (s: string): string; }[]
Run Code Online (Sandbox Code Playgroud)
完整的例子:
var f : (string) => string
f = x => '(' + x + ')';
var h : { (s: string): string; }[]
h = [];
h.push(f);
Run Code Online (Sandbox Code Playgroud)
更新:
从这个变更集判断,在1.4中的类型声明中将允许使用括号,因此问题中的"第一个猜测"也是正确的:
var h: ((string) => string)[]
Run Code Online (Sandbox Code Playgroud)
进一步更新它在1.4!
| 归档时间: |
|
| 查看次数: |
9417 次 |
| 最近记录: |