Typescript: Extensão de um módulo externo

Criado em 28 nov. 2014  ·  3Comentários  ·  Fonte: microsoft/TypeScript

Estou tentando estender um módulo de nó 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 {
...

Alguma ideia de como posso / devo estender um módulo externo?

Question

Todos 3 comentários

Acho que pode funcionar, ganha pontos por legibilidade:

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

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

Você pode fazer isso hoje:

Em um arquivo .d.ts separado:

declare module "fs" {
  stuff: number;
}

Em seu monkeypatcher:

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

Não acho que vamos adicionar sintaxe extra para isso, pois (espero?) Não é um cenário comum.

FWIW isso não funciona mais ao usar a resolução de nó e "módulos externos adequados". O módulo ambiente simplesmente substitui qualquer módulo resolvido por nó.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

CyrusNajmabadi picture CyrusNajmabadi  ·  3Comentários

fwanicka picture fwanicka  ·  3Comentários

DanielRosenwasser picture DanielRosenwasser  ·  3Comentários

kyasbal-1994 picture kyasbal-1994  ·  3Comentários

uber5001 picture uber5001  ·  3Comentários