TypeScript出现错误TS2304:找不到名称“ require”
我正在尝试启动并运行我的第一个TypeScript和DefinitelyTyped Node.js应用程序,并且遇到一些错误。
尝试转换简单的TypeScript Node.js页面时,出现错误“ TS2304:找不到名称’require’”。我已经阅读了Stack
Overflow上多次出现此错误的信息,但我认为我没有类似的问题。我在shell提示符下运行命令:
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')
行。
Types / tsd.d.ts文件的内容是:
/// <reference path="node/node.d.ts" />/// <reference path="requirejs/require.d.ts" />
.d.ts文件引用放置在适当的文件夹中,并通过以下命令添加到Types / tsd.d.ts中:
tsd install node --savetsd install require --save
产生的.js文件似乎工作正常,因此我可以忽略该错误。但是,我很高兴知道为什么会发生此错误以及我在做什么错。
回答:
回答:
如果您只有一个文件使用require,或者出于演示目的而执行此操作,则可以在TypeScript文件的顶部定义require。
declare var require: any
回答:
如果您使用的是TypeScript 2.x,则不再需要安装Typings或Definitely Typed。只需安装以下软件包。
npm install @types/node --save-dev
声明文件的未来(6/15/2016)
诸如Typings和tsd之类的工具将继续起作用,我们将与这些社区一起工作,以确保顺利过渡。
验证或编辑您的 /tsconfig.app.json,使其包含以下内容:
..."types": [ "node" ],
"typeRoots": [ "../node_modules/@types" ]
...
确保该文件位于 文件夹中,而没有一个位于根应用程序文件夹中。
默认情况下,@ types下的任何软件包都已包含在您的内部版本中, 您指定了这些选项之一。
阅读更多
回答:
使用类型(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"
]
这使您可以执行require.ensure
Webpack和其他特定于Web的功能。
回答:
使用CLI,您可以按照上面的Webpack步骤进行操作,然后将“ types”块添加到中tsconfig.app.json
。
或者,您可以使用预安装的node
类型。请记住,这将包括您的客户端代码中实际上不可用的其他类型。
"compilerOptions": { // other options
"types": [
"node"
]
}
以上是 TypeScript出现错误TS2304:找不到名称“ require” 的全部内容, 来源链接: utcz.com/qa/434872.html