我的需求挺简单, 就是继承原生对象里所有的方法和属性, 比如Date
对象, 如果不用ts的话, 直接Date.prototype.xxx = {...}
, 但是用ts, 就会出现两个问题
1.定义类名时, 报名称冲突
如果我的类名不变, 这个问题如何解决?
2.找不到父类的方法
Date类
class Date1 extends Date {
constructor() {
super()
}
}
export default Date1
测试类
import Date1 from './Date'
let d = new Date1()
d.getTime()
报这个错
1) 继承肯定是从一个类派生出另一个类,而
Date.prototype.xxxx = ....
这种形式只是对原有类进行扩展。TypeScript 也支持这种方式进行扩展。使用 TypeScript 并不是会完全避免使用.prototype
,官方文档在讲 Mixins 的时候也使用了.prototype
。2) 我不清楚你遇到了什么问题,但是我这里是没发现错误
先尝试了所有代码写在一个文件里
又尝试了分开的写法,使用 import/export 语法,仍然没发现问题
(我是使用 ts-node 运行的)