TypeScript でエラー TS2304 が発生しました: 名前 'require' が見つかりません 質問する

TypeScript でエラー TS2304 が発生しました: 名前 'require' が見つかりません 質問する

最初の 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

申告ファイルの将来(2016 年 6 月 15 日)

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"
    ]
  }

おすすめ記事