使用:和=>对于带有TypeScript函数的返回类型有什么区别?

7 javascript jquery typescript

我有以下代码:

///<reference path="../typescript/jquery.d.ts" />
function addThemePrototypes() {
    var templateSetup = new Array();
    $.fn.addTemplateSetup = function(func, prioritary)
    {
        if (prioritary)
        {
            templateSetup.unshift(func);
        }
        else
        {
            templateSetup.push(func);
        }
    };
}
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我为什么这应该声明=> void?

interface JQuery {
    addTemplateSetup: (func: Function, priority: bool) =>void;
}
Run Code Online (Sandbox Code Playgroud)

我想我对如何从javascript函数做返回类型有点困惑.有时候我会看到:jQuery,现在我正在查看=> void.两者有什么区别?

Fen*_*ton 5

在您的示例中,它们都使用冒号声明。

让我们将其分成两半!

没有类型声明...

interface JQuery {
    addTemplateSetup
}
Run Code Online (Sandbox Code Playgroud)

类型声明...

: (func: Function, priority: bool) =>void;
Run Code Online (Sandbox Code Playgroud)

如果您使用单词is代替,:它就像说

名为“ addTemplateSetUp”的属性:接受特定类型的两个参数且不返回值的函数

这是一个示例,其中两个接口实际上是相同的,但一个使用=>,另一个不使用。两者都被TypeScript相同地对待,因此实际上取决于开发人员的偏好。

interface JQuery {
    addTemplateSetup: (func: Function, priority: bool) =>void;
}

interface Identical {
    addTemplateSetup(func: Function, priority: bool): void;
}

class ImplementsEither implements JQuery {
    addTemplateSetup (func: Function, priority: bool) : void {

    }
}
Run Code Online (Sandbox Code Playgroud)

=>如果您喜欢几乎以英语阅读的样式声明,则可以使用。

如果您希望您的界面看起来更像实现方式,则可以使用第二种样式。