74

我正在尝试对需要数组作为输入参数的库使用包装器。

我尝试转换 Array,但出现错误:无法将 'any[]' 转换为 'Array'

有没有办法使这项工作?

var rows = new Array(10);
var rows2 = <Array>rows; //<--- Cannot convert 'any[]' to 'Array'
4

4 回答 4

118

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;

as运算符主要是为*.tsx文件设计的,以避免语法歧义。

于 2016-02-03T16:09:05.860 回答
15

我认为正确的语法是:

var rows2 = <Array<any>>rows;

这就是你如何投射到interface Array<T>

于 2016-02-03T15:10:06.940 回答
5

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

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

于 2012-10-09T04:33:12.350 回答
4

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

const myArray = <MyType[]>value;
于 2019-01-02T21:12:44.157 回答