将 : 和 => 用于 TypeScript 函数的返回类型有啥区别?

Posted

技术标签:

【中文标题】将 : 和 => 用于 TypeScript 函数的返回类型有啥区别?【英文标题】:What is the difference between using : and => for the return type with a TypeScript function?将 : 和 => 用于 TypeScript 函数的返回类型有什么区别? 【发布时间】:2012-10-21 19:11:53 【问题描述】:

我有以下代码:

///<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 函数执行 returntype 有点困惑。有时候我 请参阅:jQuery,现在我正在查看 => void。两者有什么区别?

【问题讨论】:

【参考方案1】:

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

让我们把它分成两半!

没有类型声明...

interface JQuery 
    addTemplateSetup

类型声明...

: (func: Function, priority: bool) =>void;

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

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

这是一个示例,其中两个接口实际上是相同的,但一个使用=&gt;,一个不使用。 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 

    

如果您喜欢几乎用英文阅读,可以使用=&gt; 样式声明。

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

【讨论】:

【参考方案2】:

这是关于函数返回什么的信息。它是返回一个 jQuery 对象(带有 JQuery 接口)还是一个不返回任何内容的 void 函数?

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

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

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

【讨论】:

但有时我看到返回为“:jQuery”与“=> jQuery”不同 是的,我认为它只是写同一件事的两种方式,我更喜欢 addTemplateSetup:()=>JQuery,因为这就是智能感知在悬停时写的内容,但查看 MS 定义文件,它们似乎更喜欢 addTemplateSetup():JQuery

以上是关于将 : 和 => 用于 TypeScript 函数的返回类型有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

将 ES5 JavaScript 用于 Angular 2 应用程序和使用 TypeScript 的优缺点是啥? [关闭]

将 Google Comlink 用于具有 React/Typescript 的网络工作者会导致 DOM 异常

Typescript 别名泛型接口

用于道具的 TypeScript 条件类型

ionic2 typescript 编译错误,用于将方法添加到字符串或数字

Typescript:这种用于键入函数的键入方法是啥?