Typescript: 外部モジュールの拡張

作成日 2014年11月28日  ·  3コメント  ·  ソース: microsoft/TypeScript

外部ノードモジュールを拡張しようとしています:

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

外部モジュールをどのように拡張するか、または拡張する必要があるかについての考えはありますか?

Question

全てのコメント3件

私はこれがうまくいくと思います、読みやすさのためにポイントを獲得します:

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これは、ノード解決と「適切な外部モジュール」を使用している場合は機能しなくなりました。 アンビエントモジュールは、ノードで解決されたモジュールをオーバーライドするだけです。

このページは役に立ちましたか?
0 / 5 - 0 評価