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;