分享一个 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';
这样一来,我们既可以调用该函数,也可以访问它的属性:

是不是很方便?
谢谢阅读!
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