簡體   English   中英

使用:和=>對於帶有TypeScript函數的返回類型有什么區別?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM