nodejs module
モジュールのプロトタイプを修正したいと思います。"TypeScriptスタイル"のプロトタイプ関数を外部モジュールに追加する方法は?
@types/node
は、この(NodeModule
)のために定義されたインタフェースを持っていますが、私は、モジュールをimport
ときは何も持っていないので、私はそれrequire
に持っています。
import * as Module from "module"; // Error
var Module = require("module"); // Ok
問題は、Moduleには定義がないことです。 any
として返されます。
私は私自身のCustomNodeModule
インターフェイスを作成する必要がありますが、どのように私はModule
プロトタイプを変更することができますし、また、これらの機能は、彼らがCustomNodeModule
インスタンスの一部であることを知っているこの
export interface CustomNodeModule extends NodeModule {
__thingy:()=>void;
}
Module.prototype.__thingy = function() {
// things!
}
がありますか?
自分のモジュールを作成する必要があります。ありがとうございました! +1は「これはグローバルな拡張*です。」です。ここで重要だった。 –
問題はまだ解決されていることに気付きました。 '__thingy()'関数は 'this'が' NodeModule'であることをまだ知りません。 –
'__thingy'の型に' this'型の注釈を追加することができます( '' __thingy:(this:NodeModule)=> void')型関数は後で関数本体自体の 'this'型を推測することができます。もっと読む[ここ](https://github.com/Microsoft/TypeScript/wiki/What's-new-in-TypeScript#specifying-the-type-of-this-for-functions)を有効にし、 '--noImplicitThis '安全であること。 –