L'extension de Tableau en caractères d'imprimerie
Comment ajouter une méthode à un type de base, disons Tableau? Dans le module global ce sera reconnue
interface Array {
remove(o): Array;
}
mais où mettre la mise en œuvre effective?
- Solution très simple que j'ai répondu ici - stackoverflow.com/questions/14867649/...
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser le prototype d'étendre Tableau:
Si vous êtes à l'intérieur d'un module, vous devez préciser que vous faites référence à l'global
Array<T>
, pas de la création d'un localArray<T>
interface au sein de votre module:interface Array<T> { remove(o): T[]; }
dans la nouvelle version avec les génériquesinterface Array<T>
qui est membre du module, c'est à direMyModule.Array<T>
. Cela signifie que le mondialArray<T>
n'est pas étendu, mais une nouvelle interface locale est créée. Vous devez mettre des extensions dans la portée globale... je te suggère de mettre l'interface en.d.ts
fichier. Avez-vous aussi besoin de patch la définition de tableau ou est-ce qu'une interface?declare global {}
sur la déclaration d'interface, sinon il va déclencher d'erreurdeclare global
semble être le billet de la Machine 2.1. Notez queArray.prototype
est de typeany[]
, donc si vous voulez avoir votre implémentation de la fonction contrôle de cohérence, le meilleur pour ajouter un paramètre de type générique vous-même.this
seraany[]
, pasT[]
. Quelqu'un sait-il pourquoi? Est-il une solution?this
paramètre basé sur votre question. Voir la "cette section" paramètres de typescriptlang.org/docs/handbook/functions.html.De Tapuscrit 1.6, vous pouvez "nativement" étendre arbitraire des expressions comme intégré types.
Ce qui est nouveau en caractères d'imprimerie:
[]
opérateur ne parvient pas à se comporter comme prévu. stackoverflow.com/questions/33947854/...L'ajout de Rikki Gibson réponse,
Sans l'exportation{} TS erreur "Augmentations de la portée globale ne peut être directement imbriquée dans des modules externes ou ambiante module de déclarations."
cela fonctionne pour moi avec tapuscrit v2.2.1!
MyArray
, afin de ne pas travailler de façon transparente avec d'autres bibliothèques qui renvoient des matrices.