最初の TypeScript と DefinitelyTyped Node.js アプリケーションを起動して実行しようとしているのですが、いくつかエラーが発生しています。
単純な TypeScript Node.js ページをトランスパイルしようとすると、「TS2304: 名前 'require' が見つかりません」というエラーが発生します。Stack Overflow でこのエラーの他の発生例をいくつか読みましたが、同様の問題はないと思います。シェル プロンプトで次のコマンドを実行しています。
tsc movie.server.model.ts.
このファイルの内容は次のとおりです。
'use strict';
/// <reference path="typings/tsd.d.ts" />
/* movie.server.model.ts - definition of movie schema */
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
var foo = 'test';
行にエラーがスローされますvar mongoose=require('mongoose')
。
enterings/tsd.d.ts ファイルの内容は次のとおりです。
/// <reference path="node/node.d.ts" />
/// <reference path="requirejs/require.d.ts" />
.d.ts ファイル参照は適切なフォルダーに配置され、次のコマンドによってtypings/tsd.d.ts に追加されました。
tsd install node --save
tsd install require --save
生成された .js ファイルは正常に動作しているようなので、エラーは無視できます。ただし、このエラーが発生する理由と、何が間違っているのかを教えていただければ幸いです。
ベストアンサー1
素早く汚い
require を使用するファイルが 1 つだけの場合、またはデモ目的でこれを実行する場合は、TypeScript ファイルの先頭で require を定義できます。
declare var require: any
タイプスクリプト 2.x
TypeScript 2.x を使用している場合は、Typings または Definitely Typed をインストールする必要はなくなりました。次のパッケージをインストールするだけです。
npm install @types/node --save-dev
Typings や tsd などのツールは引き続き機能し、スムーズな移行を確実にするためにこれらのコミュニティと協力していきます。
src /tsconfig.app.jsonを確認または編集して、次の内容が含まれるようにします。
...
"types": [ "node" ],
"typeRoots": [ "../node_modules/@types" ]
...
ファイルがsrcフォルダーにあり、ルート アプリ フォルダーにないことを確認します。
デフォルトでは、これらのオプションのいずれかを指定しない限り、 @types の下にあるすべてのパッケージがビルドに既に含まれています。続きを読む
タイプスクリプト 1.x
Typings (DefinitelyTyped の代替) を使用すると、GitHub リポジトリから直接定義を指定できます。
インストールタイピング
npm install typings -g --save-dev
DefinitelyTypeのリポジトリからrequireJS型定義をインストールします。
typings install dt~node --save --global
ウェブパック
ビルド ツールとして Webpack を使用している場合は、Webpack タイプを含めることができます。
npm install --save-dev @types/webpack-env
tsconfig.json
以下の内容で を更新してくださいcompilerOptions
:
"types": [
"webpack-env"
]
これにより、Webpack 固有のその他の機能を実行できるようになりますrequire.ensure
。
角度CLI
CLI を使用すると、上記の Webpack の手順に従って、 に「types」ブロックを追加できますtsconfig.app.json
。
あるいは、プリインストールされたnode
型を使用することもできます。この場合、実際には利用できない追加の型がクライアント側コードに含まれることに注意してください。
"compilerOptions": {
// other options
"types": [
"node"
]
}