TypeScript casting arrays
I'm trying to use a wrapper for a library that wants an Array as an input parameter.
I tried casting the Array, but I get an error: Cannot convert 'any[]' to 'Array'
Is there a way to make this work?
var rows = new Array(10);
var rows2 = <Array>rows; //<--- Cannot convert 'any[]' to 'Array'
Solution 1:
There are 4 possible conversion methods in TypeScript for arrays:
let x = []; //any[]
let y1 = x as number[];
let z1 = x as Array<number>;
let y2 = <number[]>x;
let z2 = <Array<number>>x;
The as
operator's mostly designed for *.tsx
files to avoid the syntax ambiguity.
Solution 2:
I think the right syntax is:
var rows2 = <Array<any>>rows;
That's how you cast to interface Array<T>