代码改变世界

在TypeScript中扩展JavaScript基础对象的功能

2017-04-14 19:18  阿诚de窝  阅读(4365)  评论(1编辑  收藏  举报

最近工作中用到,记录一下:假设我们需要一个功能,把一个数字比如10000输出为下面的字符串格式“10,000”,一般是写一个方法,那么我希望更方便一点,直接向Number类型添加一个格式化方法,比如叫toFormat的方法来实现得到格式化后的字符串。

添加.d.ts定义

要在TypeScript中扩展一个基础对象的方法需要预先告知编译器有该方法才行:

1 interface Number {
2     toFormat(): string;
3 }

添加实现

具体实现根据需要编写即可,需要注意的是要添加在原型对象上才行:

1 Number.property.toFormat = function () {
2     //拿到数字的值,即数字本身
3     var value = this.valueOf();
4     //这里是具体的处理代码,这里略过了
5     var str = "code";
6     //返回即可
7     return str;
8 }

直接调用即可:

1 var i = 10000;
2 console.log(i.toFormat());

这里我的实现是使用JavaScript编写的,如果是在TypeScript中,也可以使用TS的方式编写。