クラス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ます。