0%

基于webpack模块加载,ts里对系统对象prototype的扩展

用systemJS的时候,这样写是可以:

1
2
3
4
5
6
7
8
9
10
11
constructor() {
// 对Date的扩展,将 Date 转化为指定格式的String
// 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符,
// 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
// 例子:
// (new Date()).format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423
// (new Date()).format("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18
Date.prototype.format = function (fmt) {
……
}
}

但是换成webpack后,这样就报错了,识别不了,查了一些资料,换成下面的就可以了。

1
2
3
4
5
6
7
8
9
10
11
constructor() {
     // 对Date的扩展,将 Date 转化为指定格式的String
// 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符,
// 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
// 例子:
// (new Date()).format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423
// (new Date()).format("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18
Date.prototype['format'] = function (fmt) {
……
}
}

或者用这种方法http://stackoverflow.com/questions/12766117/how-does-prototype-extend-on-typescript

觉得这种方法不是很好,也没亲测

欢迎关注我的其它发布渠道