TypeScript литейные массивы
Я пытаюсь использовать оболочку для библиотеки, которая хочет в качестве входного параметра Array.
Я попробовал лить массив, но получаю сообщение об ошибке: Невозможно преобразовать 'any []' в 'Array'
Есть ли способ сделать эту работу?
var rows = new Array(10);
var rows2 = <Array>rows; //<--- Cannot convert 'any[]' to 'Array'
Ответы
Ответ 1
Существует 4 возможных метода преобразования в TypeScript для массивов:
let x = []; //any[]
let y1 = x as number[];
let z1 = x as Array<number>;
let y2 = <number[]>x;
let z2 = <Array<number>>x;
Оператор as
в основном предназначен для файлов *.tsx
, чтобы избежать двусмысленности синтаксиса.
Ответ 2
Я думаю, что правильный синтаксис:
var rows2 = <Array<any>>rows;
Что вы делаете в interface Array<T>
Ответ 3
Я думаю, что это просто ошибка - можете ли вы зарегистрировать проблему на сайте CodePlex?
В качестве обходного пути вы можете написать <Array><any>rows
;
Ответ 4
Простое решение для всех типов
const myArray = <MyType[]>value;