[英]What is the difference between `Function('return this')` and `function() {return this}`?
[英]What is the difference between using : and => for the return type with a TypeScript function?
我有以下代碼:
///<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);
}
};
}
有人可以告訴我為什么這應該聲明=> void?
interface JQuery {
addTemplateSetup: (func: Function, priority: bool) =>void;
}
我想我對如何從javascript函數做返回類型有點困惑。 有時候我會看到:jQuery,現在我正在查看=> 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 {
}
}
如果你喜歡用英語閱讀,你可以使用=>
style聲明。
如果希望接口看起來更像實現,則可以使用第二種樣式。
它是關於函數返回的信息。 它是返回一個jQuery對象(使用JQuery接口)還是一個不返回任何內容的void函數?
$("#someId").addTemplateSetup();
在你的樣本中你沒有返回任何東西,所以“void”是正確的。 但是如果你在你的javascript函數中返回“this”,這是非常常見的,為了保持jQuery的可鏈接性,你應該聲明它返回=> JQuery;
$("#someId").addTemplateSetup().Show();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.