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?
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ó.