正如我在此处阅读的那样,应该可以在 ts 1.6 中扩展内置类型:
TypeScript 1.6 添加了对扩展计算构造函数的任意表达式的类的支持。这意味着现在可以在类声明中扩展内置类型。
...
一些例子:
Run Code Online (Sandbox Code Playgroud)// Extend built-in types class MyArray extends Array<number> { } class MyError extends Error { } ...
但是,在扩展 Array 时,使用 [] 运算符设置值时不会更新长度属性。推送功能工作正常,但我需要 [] 运算符。
我的例子:
class ExtendedArray<T> extends Array<T> {}
var buildinArray = new Array<string>();
var extendedArray = new ExtendedArray<string>();
buildinArray.push("A");
console.log(buildinArray.length); // 1 - OK
buildinArray[2] = "B";
console.log(buildinArray.length); // 3 - OK
extendedArray.push("A");
console.log(extendedArray.length); // 1 - OK
extendedArray[2] = "B";
console.log(extendedArray.length); // 1 - FAIL
console.dir(extendedArray); …Run Code Online (Sandbox Code Playgroud)