Macierze odlewania maszynopis

głosy
22

Próbuję użyć otoki dla biblioteki, która chce tablicę jako parametr wejściowy.

Próbowałem odlewania Array, ale pojawia się błąd: Nie można przekonwertować „wszelkie []” do „Array”

Czy istnieje sposób, aby to działało?

var rows = new Array(10);
var rows2 = <Array>rows; //<--- Cannot convert 'any[]' to 'Array'
Utwórz 09/10/2012 o 05:12
źródło użytkownik
W innych językach...                            


4 odpowiedzi

głosy
33

Istnieją 4 możliwe sposoby konwersja na maszynie do tablic:

let x = []; //any[]

let y1 = x as number[];
let z1 = x as Array<number>;
let y2 = <number[]>x;
let z2 = <Array<number>>x;

asOperatora głównie przeznaczony dla *.tsxplików, aby uniknąć niejednoznaczności składni.

Odpowiedział 03/02/2016 o 16:09
źródło użytkownik

głosy
6

Myślę, że rację Składnia jest następująca:

var rows2 = <Array<any>>rows;

To, w jaki sposób rzutować na interface Array<T>

Odpowiedział 03/02/2016 o 15:10
źródło użytkownik

głosy
4

Myślę, że jest to po prostu bug - można zalogować się problem na stronie CodePlex?

Jako obejście, można napisać <Array><any>rows;

Odpowiedział 09/10/2012 o 05:33
źródło użytkownik

głosy
0

Proste rozwiązanie dla wszystkich typów

const myArray = <MyType[]>value;
Odpowiedział 02/01/2019 o 21:12
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more