Я пытаюсь расширить модуль внешнего узла:
// 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 {
...
Есть мысли о том, как я могу / должен расширять внешний модуль?
Я думаю, что это могло бы сработать, выигрывает за удобочитаемость:
module System.Fs.Node {
export * from "fs";
export function mkdirSync($path: string, $options: IfOptions_mkdir|number) {
//...
}
}
Вы можете сделать это сегодня:
В отдельном файле .d.ts:
declare module "fs" {
stuff: number;
}
В вашем обезьянах:
/// reference the above .d.ts file
import fs = require('fs');
fs.stuff = 3;
Я не думаю, что мы собираемся добавлять для этого дополнительный синтаксис, поскольку это (надеюсь?) Не распространенный сценарий.
FWIW это больше не работает при использовании разрешения узла и «правильных внешних модулей». Внешний модуль просто переопределяет любой модуль, разрешенный узлами.