TypeScriptで、Node.jsのモジュールをrequireしようとして次のようなコードを書くと”error TS2095: Could not find symbol 'require'.”とか言われてエラーになる。
hoge.ts
var http = require('http');
ネットで検索しても、なかなか思う回答に辿り着けない。
で、試行錯誤して辿り着いた答が以下。
hoge.ts
declare function require(x: string): any;
var http = require('http');
declareで使いたい関数を宣言してやれば良かったようです。
ついでに、TypeScript + Node.js で動く簡単なWebサーバーを書いてみた。
TypeScriptらしさがかけらもないけど、まあしょうがない。
server.ts
declare function require(x: string): any;
var http = require('http');
var server = http.createServer(function(request, response){
response.statusCode = 200;
response.setHeader('Content-type', 'text/plain');
response.write('Hello, TypeScript!');
response.end();
});
server.listen(8080);
console.log('Server start.');
使い方は、コンパイルしてから、nodeで実行。
$ tsc server.ts
$ node server.js
これで、ブラウザから、 http://localhost:8080/ にアクセスすれば”Hello, TypeScript!”と表示されるはず。