クラスnode_modules
内から(から) 通常の NodeJS モジュールをロードするにはどうすればよいですか?TypeScript
.ts
以下を含むファイルをコンパイルしようとすると:
var sampleModule = require('modulename');
このスコープでは require を使用できないコンパイラ プロンプトが表示されます。(その行はファイルの先頭にあります)。
クラスnode_modules
内から(から) 通常の NodeJS モジュールをロードするにはどうすればよいですか?TypeScript
.ts
以下を含むファイルをコンパイルしようとすると:
var sampleModule = require('modulename');
このスコープでは require を使用できないコンパイラ プロンプトが表示されます。(その行はファイルの先頭にあります)。
シンボルが見つからない場合、Typescript は常に文句を言います。コンパイラには、 のデフォルト定義のセットが付属しておりwindow
、document
そのような定義は というファイルで指定されていますlib.d.ts
。このファイルで grep を実行するrequire
と、関数の定義が見つかりませんrequire
。したがって、次のdeclare
構文を使用して、この関数が実行時に存在することをコンパイラー自身に伝える必要があります。
declare function require(name:string);
var sampleModule = require('modulename');
私のシステムでは、これは問題なくコンパイルされます。
正しい構文は次のとおりです。
import sampleModule = require('modulename');
また
import * as sampleModule from 'modulename';
次に、TypeScript を でコンパイルします--module commonjs
。
index.d.ts
パッケージにファイルが付属しておらず、そのパッケージにプロパティpackage.json
がない場合、は何が参照されているかわからないと吠えます。このためには、 http://Definitivelytyped.org/でファイルを見つけるか、自分で作成する必要があります。"typings"
tsc
'modulename'
.d.ts
Node.js のコードを書いている場合は、 http://Definitivelytyped.org/ からのファイルも必要になりnode.d.ts
ます。