TypeScript 给函数声明额外的属性

分享一个 TypeScript 中给函数声明类型的一个小技巧。

假设有如下函数:

function add(a: number, b: number{
    return a + b;
}

我们知道,如果要给该函数声明类型,可能会这样写:

type Add = (a: number, b: number) => number;
// 不会报错
const a: Add = add;

其实,还能像下面这样声明类型(以对象的形式):

// 以对象的形式声明函数类型
type Add2 = {
    (a: number, b: number): number;
}
// 不会报错
const b: Add2 = add;

这样做的一个好处是,如果想给函数添加额外的属性,只要这样:

type Add3 = {
    (a: number, b: number): number;
    // 函数有一个 author 属性
    author: string,
}
// 报错,下一行去掉即可
const c: Add3 = add;
// add.author = 'youmoo';

这样一来,我们既可以调用该函数,也可以访问它的属性:

TypeScript 给函数声明额外的属性

是不是很方便?

谢谢阅读!


300字原创 300字原创 300字原创 300字原创 300字原创 300字原创 300字原创 300字原创 300字原创 300字原创 300字原创 300字原创 300字原创 300字原创 300字原创 300字原创 300字原创 300字原创 300字原创 300字原创 300字原创 300字原创 300字原创 300字原创 300字原创 300字原创 300字原创 300字原创 300字原创 

原文始发于微信公众号(背井):TypeScript 给函数声明额外的属性

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/246619.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!