أحاول تمديد وحدة عقدة خارجية:
// 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 لم يعد هذا يعمل عند استخدام دقة العقدة و "الوحدات الخارجية المناسبة". تتجاوز الوحدة النمطية المحيطة ببساطة أي وحدة تم حلها بواسطة العقدة.