Typescript: Расширение внешнего модуля

Созданный на 28 нояб. 2014  ·  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;
}

В вашем обезьянах:

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

Я не думаю, что мы собираемся добавлять для этого дополнительный синтаксис, поскольку это (надеюсь?) Не распространенный сценарий.

FWIW это больше не работает при использовании разрешения узла и «правильных внешних модулей». Внешний модуль просто переопределяет любой модуль, разрешенный узлами.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги