tableaux de coulée dactylographiée

voix
22

Je suis en train d'utiliser un wrapper pour une bibliothèque qui veut un tableau en tant que paramètre d'entrée.

J'ai essayé casting Array, mais je reçois une erreur: Impossible de convertir « une [] » à « Array »

Y at-il un moyen de faire ce travail?

var rows = new Array(10);
var rows2 = <Array>rows; //<--- Cannot convert 'any[]' to 'Array'
Créé 09/10/2012 à 05:12
source utilisateur
Dans d'autres langues...                            


4 réponses

voix
33

Il y a 4 méthodes possibles de convertion dactylographiée pour les tableaux:

let x = []; //any[]

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

L' asopérateur est principalement conçu pour les *.tsxfichiers afin d' éviter l'ambiguïté de la syntaxe.

Créé 03/02/2016 à 16:09
source utilisateur

voix
6

Je pense que la bonne syntaxe est:

var rows2 = <Array<any>>rows;

Voilà comment vous caster interface Array<T>

Créé 03/02/2016 à 15:10
source utilisateur

voix
4

Je pense que cela est juste un bug - vous pouvez connecter un problème sur le site CodePlex?

Pour contourner ce problème, vous pouvez écrire <Array><any>rows;

Créé 09/10/2012 à 05:33
source utilisateur

voix
0

Une solution simple pour tous les types

const myArray = <MyType[]>value;
Créé 02/01/2019 à 21:12
source utilisateur

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