TypeScript转换数组

Ada*_*gen 48 casting typescript

我正在尝试将一个包装器用于希望将Array作为输入参数的库.

我试着投射数组,但是我收到一个错误:无法将'any []'转换为'Array'

有没有办法让这项工作?

var rows = new Array(10);
var rows2 = <Array>rows; //<--- Cannot convert 'any[]' to 'Array'
Run Code Online (Sandbox Code Playgroud)

sha*_*are 65

TypeScript中有4种可能的转换方法:

let x = []; //any[]

let y1 = x as number[];
let z1 = x as Array<number>;
let y2 = <number[]>x;
let z2 = <Array<number>>x;
Run Code Online (Sandbox Code Playgroud)

as运营商的主要设计*.tsx文件,以避免语法歧义.


小智 14

我认为正确的语法是:

var rows2 = <Array<any>>rows;
Run Code Online (Sandbox Code Playgroud)

这就是你投的方式 interface Array<T>


Rya*_*ugh 5

我认为这只是一个错误 - 您可以在CodePlex网站上记录问题吗?

作为一种解决方法,你可以写<Array><any>rows;


Jay*_*ney 5

适用于所有类型的简单解决方案

const myArray = <MyType[]>value;
Run Code Online (Sandbox Code Playgroud)