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

Javascript 使用:和=>;之间有什么区别;对于带有TypeScript函数的返回类型?,javascript,jquery,typescript,Javascript,Jquery,Typescript,我有以下代码: ///<reference path="../typescript/jquery.d.ts" /> function addThemePrototypes() { var templateSetup = new Array(); $.fn.addTemplateSetup = function(func, prioritary) { if (prioritary) { templateSe

我有以下代码:

///<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);
        }
    };
}
我想我对如何从javascript函数执行returntype有点困惑。有时我
请参阅:jQuery,现在我是seing=>void。这两者之间有什么区别?

是关于函数返回内容的信息。它是返回一个jQuery对象(使用jQuery接口)还是一个不返回任何内容的void函数

$("#someId").addTemplateSetup();
在您的示例中,您没有返回任何内容,因此“void”是正确的。但是,如果您在javascript函数中返回“this”(这很常见),为了保持jQuery的可链接性,您应该声明它returning=>jQuery

$("#someId").addTemplateSetup().Show();

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

我们把它一分为二吧

没有类型声明

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

interface JQuery {
    addTemplateSetup
}
: (func: Function, priority: bool) =>void;
如果你用单词
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 {

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


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

但有时我会看到返回:jQuery“与”=>jQuery“有什么不同吗?是的,我认为这只是两种编写相同内容的方式,我更喜欢addTemplateSetup:()=>JQuery,因为这是intellisense在悬停时编写的,但查看MS定义文件时,他们似乎更喜欢addTemplateSetup():JQuery