打字稿得到错误TS2304:找不到名字'要求'我试图让我的第一个Typescript和DefinitelyTyped节点应用程序启动并运行,并遇到一些错误。当我尝试转换一个简单的ts节点页面时,我收到错误“TS2304:找不到名称'require'”。我已经在SO上阅读了其他几个这样的错误,我认为我没有类似的问题。我在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')行引发错误typings / tsd.d.ts文件的内容是:/// <reference path="node/node.d.ts" />/// <reference path="requirejs/require.d.ts" />.d.ts文件引用放在相应的文件夹中,并通过命令添加到typings / tsd.d.ts:tsd install node --savetsd install require --save生成的.js文件似乎工作正常,所以我可以忽略错误。但我很想知道为什么会出现这种错误以及我做错了什么。
3 回答
湖上湖
TA贡献2003条经验 获得超2个赞
对于TypeScript 2.x,现在有两个步骤:
安装定义的包
require
。例如:npm install @types/node --save-dev
告诉TypeScript将其全局包含在
tsconfig.json
:{ "compilerOptions": { "types": ["node"] }}
第二步仅在您需要访问全局可用功能时才很重要require
。对于大多数包,您应该只使用该import package from 'package'
模式。不需要在上面的tsconfig.json类型数组中包含每个包。
跃然一笑
TA贡献1826条经验 获得超6个赞
您可以
declare var require: any
或者,要获得更全面的支持,请使用DefinitelyTyped的require.d.ts
另外,var mongoose = require('mongoose')
您可以尝试以下方法
import mongoose from 'mongoose' // orimport mongoose = require('mongoose')
- 3 回答
- 0 关注
- 1171 浏览
添加回答
举报
0/150
提交
取消