Strojopisem licí pole

hlasů
22

Snažím se používat obálky pro knihovnu, která chce pole jako vstupní parametr.

Snažil jsem se odlitků Array, ale dostanu chybu: Nelze převést ‚žádnou []‘ na ‚Array‘

Existuje způsob, aby to fungovalo?

var rows = new Array(10);
var rows2 = <Array>rows; //<--- Cannot convert 'any[]' to 'Array'
Položena 09/10/2012 v 05:12
zdroj uživatelem
V jiných jazycích...                            


4 odpovědí

hlasů
33

K dispozici jsou 4 možné způsoby konverze na psacím stroji na pole:

let x = []; //any[]

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

asOperátor je převážně určen pro *.tsxsoubory, aby se zabránilo syntaxe dvojznačnost.

Odpovězeno 03/02/2016 v 16:09
zdroj uživatelem

hlasů
6

Myslím, že správná syntaxe je:

var rows2 = <Array<any>>rows;

To je, jak se obsazení na interface Array<T>

Odpovězeno 03/02/2016 v 15:10
zdroj uživatelem

hlasů
4

Myslím, že je to jen chyba - můžete se přihlásit problém na místě CodePlex?

Jako řešení, můžete napsat <Array><any>rows;

Odpovězeno 09/10/2012 v 05:33
zdroj uživatelem

hlasů
0

Jednoduché řešení pro všechny typy

const myArray = <MyType[]>value;
Odpovězeno 02/01/2019 v 21:12
zdroj uživatelem

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