Typescript: Erweiterung eines externen Moduls

Erstellt am 28. Nov. 2014  ·  3Kommentare  ·  Quelle: microsoft/TypeScript

Ich versuche, ein externes Knotenmodul zu erweitern:

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

Irgendwelche Gedanken, wie ich ein externes Modul erweitern könnte/sollte?

Question

Alle 3 Kommentare

Ich denke, das könnte funktionieren, gewinnt Punkte für die Lesbarkeit:

module System.Fs.Node {
    export * from "fs";

    export function mkdirSync($path: string, $options: IfOptions_mkdir|number) {
     //...
    }
  }

Sie können dies heute tun:

In einer separaten .d.ts-Datei:

declare module "fs" {
  stuff: number;
}

In deinem Monkeypatcher:

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

Ich glaube nicht, dass wir dafür zusätzliche Syntax hinzufügen werden, da dies (hoffentlich?) kein übliches Szenario ist.

FWIW funktioniert dies nicht mehr bei Verwendung von Knotenauflösung und "richtigen externen Modulen". Das Umgebungsmodul überschreibt einfach jedes knotenaufgelöste Modul.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

bgrieder picture bgrieder  ·  3Kommentare

Antony-Jones picture Antony-Jones  ·  3Kommentare

blendsdk picture blendsdk  ·  3Kommentare

manekinekko picture manekinekko  ·  3Kommentare

uber5001 picture uber5001  ·  3Kommentare