外部ノードモジュールを拡張しようとしています:
// 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;
}
あなたのmonkeypatcherで:
/// reference the above .d.ts file
import fs = require('fs');
fs.stuff = 3;
これは(願わくば?)一般的なシナリオではないため、これに構文を追加するつもりはないと思います。
FWIWこれは、ノード解決と「適切な外部モジュール」を使用している場合は機能しなくなりました。 アンビエントモジュールは、ノードで解決されたモジュールをオーバーライドするだけです。