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

dlaberge picture dlaberge  ·  3Kommentare

seanzer picture seanzer  ·  3Kommentare

DanielRosenwasser picture DanielRosenwasser  ·  3Kommentare

MartynasZilinskas picture MartynasZilinskas  ·  3Kommentare

weswigham picture weswigham  ·  3Kommentare