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