函数类型声明

Js中有两种常见的定义函数的方式--函数声明和函数表达式

// 函数声明(Function Declaration)
function sum(x, y) {
  return x + y;
}

// 函数表达式(Function Expression)
let mySum = function (x, y) {
  return x + y;
};

一个函数有输入和输出,要在TypeScript中对其进行约束,需要把输入和输出都考虑到,其中函数声明的类型定义比较简单:

function sum(x: number, y: number): number {
  return x + y;
}

如果对一个函数表达式进行类型定义,可能会这样写

let mySum = function (x:number, y:number) : number { 
    return x + y; 
}

这样写是没问题的,但实际上,上面的等式只对右侧的匿名函数进行了类型定义,而等号左边的mySum是通过赋值操作进行类型推论而推断出来的。如果手动添加类型,应该是这样的。

let mySum : (x:number, y:number) => number
    = 
    function (x:number, y:number) {
        return x + y;
    }

在typescript中,用=>表示函数的定义,左边是输入类型,右边是返回类型。

我们也可以使用接口的方式定义一个函数需要符合的形状

interface SearchFunc {
    (source: string, subString: string) : boolean;
}

let mySearch: SearchFunc;
mySearch = function(source: string, subString: string) {
    return source.search(subString) !== -1;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容