J'essaie d'ajouter une nouvelle méthode (last
) à la classe Array
.Extension de la classe Array en ajoutant une nouvelle méthode à l'interface globale
C'est ce que je fais (amoung autres fonctions déclarées) dans mon dossier test.ts
: cela ne fonctionne pas
declare global {
interface Array<T> {
last(): T;
}
}
if (!Array.prototype.last) {
Array.prototype.last = function <T>(): T {
return this[this.length - 1];
}
}
Cependant, comme il semble effacer complètement les autres définitions pour Array
maintenant je reçois des erreurs comme:
TypeError: Cannot read property 'length' of undefined
Cela se produit si je tente d'accéder à la propriété length
des éventuels tableaux.
Comment puis-je y parvenir correctement? La déclaration doit-elle entrer dans un fichier par elle-même?
Utilisez-vous un système de module? Autrement dit, utilisez-vous 'import' /' export'? –
@NitzanTomer Non, j'ai simplement cette déclaration dans le même fichier que je l'utilise. IntelliJ ne montre pas d'erreurs, mais une fois que je compile, je reçois les erreurs – smac89
@NitzanTomer, En fait, j'ai des importations au sommet de le fichier. Cela change-t-il quelque chose? – smac89