函数定义语法在Typescript中混淆

时间:2015-12-02 21:29:21

标签: typescript

所有

[更新] 我明白了:SO中的一篇帖子解释了这一点: In TypeScript how do I declare an array of functions that accept a string and return a string?
事实证明:

  

表单

的函数类型文字      

(ParamList)=>返回类型

     

完全等同于对象类型文字

     

{(ParamList):ReturnType}

那么,带有括号<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="tags"> <span class='tag'>Span 1</span><br/> <span class='tag'>Span 2</span><br/> <span class='tag'>Span 3</span><br/> <span class='tag'>Span 4</span> </div> &lt; =&gt; 箭头:

的冒号{}

我对Typescript很新,有一个例子让我对它的语法感到困惑:

=>

任何人都可以帮忙解释一下这段代码的作用吗?特别是第一部分定义的作用是什么?

var sayHello: (input: string) : string = function (s: string) {
    return "Hello " + s;
}
var stringUtils: { (input: string): string; }[];
stringUtils.push(sayHello);

示例说sayHello是一个函数变量,但是当我运行它时,我得到了“=&gt;”预期的错误,这是否意味着此语法属于旧的打字稿但现在不存在?

由于

1 个答案:

答案 0 :(得分:1)

  

任何人都可以帮忙解释一下这段代码的作用吗?特别是第一部分定义的作用   var sayHello: (input: string) : string = function (s: string) {

应该是:

var sayHello: (input: string) => string = function (s: string) {

我们说sayHello是一个接受字符串并返回字符串: (input: string) => string的函数。然后我们将它分配给这样一个函数= function (s: string) {