当前位置:  开发笔记 > 编程语言 > 正文

TypeScript Array <T>继承

如何解决《TypeScriptArray<T>继承》经验,为你挑选了1个好方法。

我有一些继承自Array......的实验代码

class SuperArray extends Array {
    constructor(...items) {
        super(...items);
    }

    public clear(): void {
        while (this.length > 0) {
            this.pop();
        }
    }
}

var array = new SuperArray("Matt", "Mark", "Luke", "John");

array.clear();

操场

我添加了这个clear方法只是为了说明问题.当它在浏览器中编译并运行时,我得到......

TypeError:array.clear不是函数

这是TypeScript中完全有效的代码,但在JavaScript中无效,有没有办法解决这个问题?



1> HolgerJeromi..:

顺便说一下,这是TS2.1的一个突破性变化

此TS文档建议在构造函数中更改原型

constructor(...items) {
    super(...items);
    Object.setPrototypeOf(this, SuperArray.prototype);
}

推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有