Typescript: Extension d'un module externe

Créé le 28 nov. 2014  ·  3Commentaires  ·  Source: microsoft/TypeScript

J'essaie d'étendre un module de nœud externe :

// a) Use an import?
import System.Fs.Node = require('fs');

// b) Hackery? 
var System = System || {}
var System.Fs = System.Fs || {}
var System.Fs.Node = require('fs')

module System.Fs.Node {

    var path = require('path');

    interface IfOptions_mkdir {
        mode?: number
        recursive: boolean
    }

    export function mkdirSync($path: string, $options: IfOptions_mkdir|number) {
        try {
...

Des idées sur la façon dont je pourrais/devrais étendre un module externe ?

Question

Tous les 3 commentaires

Je pense que cela pourrait fonctionner, gagne des points pour la lisibilité:

module System.Fs.Node {
    export * from "fs";

    export function mkdirSync($path: string, $options: IfOptions_mkdir|number) {
     //...
    }
  }

Vous pouvez le faire aujourd'hui :

Dans un fichier .d.ts séparé :

declare module "fs" {
  stuff: number;
}

Dans votre Monkeypatcher :

/// reference the above .d.ts file
import fs = require('fs');
fs.stuff = 3;

Je ne pense pas que nous allons ajouter une syntaxe supplémentaire pour cela car ce n'est (espérons-le?) pas un scénario courant.

FWIW cela ne fonctionne plus lors de l'utilisation de la résolution de nœud et des "modules externes appropriés". Le module ambiant remplace simplement tout module résolu par les nœuds.

Cette page vous a été utile?
0 / 5 - 0 notes