должно быть возможно расширить встроенные типы в TS 1.6, как я прочитал here:класса простирался от встроенного массива в машинописном 1.6.2 не обновляет длину, используя оператор []
машинописи 1,6 добавляет поддержку классов, расширяющих произвольное выражение, которое вычисляет функцию-конструктор. Это означает, что встроенные типы теперь могут быть расширены в объявлениях классов.
...
Некоторых примеры:
// Extend built-in types class MyArray extends Array<number> { } class MyError extends Error { } ...
Однако при расширении массива, длина свойство не обновляется при использовании оператора [], чтобы установить значение. Функция Push работает нормально, но мне нужен оператор [].
Мой пример:
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); // both values, but wrong length
Я делаю что-то не так? В чем проблема?
Каков ваш прецедент для расширения 'Array'? Я никогда не чувствовал необходимости в подклассах массивов, особенно в TypeScript, где интерфейсы чрезвычайно универсальны, когда дело доходит до дженериков. – mfeineis