Typescript: Ampliación de un módulo externo

Creado en 28 nov. 2014  ·  3Comentarios  ·  Fuente: microsoft/TypeScript

Estoy tratando de extender un módulo de nodo externo:

// 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 {
...

¿Alguna idea sobre cómo podría / debería extender un módulo externo?

Question

Todos 3 comentarios

Creo que esto podría funcionar, gana puntos por legibilidad:

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

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

Puedes hacer esto hoy:

En un archivo .d.ts separado:

declare module "fs" {
  stuff: number;
}

En tu parche de mono:

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

No creo que vayamos a agregar sintaxis adicional para esto ya que (¿con suerte?) No es un escenario común.

FWIW, esto ya no funciona cuando se usa la resolución de nodo y los "módulos externos adecuados". El módulo ambiental simplemente anula cualquier módulo resuelto por un nodo.

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

Antony-Jones picture Antony-Jones  ·  3Comentarios

MartynasZilinskas picture MartynasZilinskas  ·  3Comentarios

blendsdk picture blendsdk  ·  3Comentarios

uber5001 picture uber5001  ·  3Comentarios

rigdern picture rigdern  ·  3Comentarios