J'essaie d'utiliser un wrapper pour une bibliothèque qui veut un tableau comme paramètre d'entrée.
J'ai essayé de transtyper le tableau, mais j'ai une erreur: je ne peux pas convertir 'any []' en 'tableau'
Y at-il un moyen de faire ce travail?
var rows = new Array(10);
var rows2 = <Array>rows; //<--- Cannot convert 'any[]' to 'Array'
Il existe 4 méthodes de conversion possibles dans TypeScript 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'opérateur as
est principalement conçu pour les fichiers *.tsx
afin d'éviter l'ambiguïté de la syntaxe.
Je pense que la bonne syntaxe est la suivante:
var rows2 = <Array<any>>rows;
C'est comme ça que vous lancez interface Array<T>
Je pense que ceci est juste un bug - pouvez-vous enregistrer un problème sur le site CodePlex?
Pour contourner le problème, vous pouvez écrire <Array><any>rows
;
Une solution simple pour tous les types
const myArray = <MyType[]>value;