为了账号安全,请及时绑定邮箱和手机立即绑定

打字稿得到错误TS2304:找不到名字'要求'

打字稿得到错误TS2304:找不到名字'要求'

慕神8447489 2019-08-09 11:34:41
打字稿得到错误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,现在有两个步骤:

  1. 安装定义的包require。例如:

    npm install @types/node --save-dev
  2. 告诉TypeScript将其全局包含在tsconfig.json

    {
        "compilerOptions": {
            "types": ["node"]
        }}

第二步仅在您需要访问全局可用功能时才很重要require。对于大多数包,您应该只使用该import package from 'package'模式。不需要在上面的tsconfig.json类型数组中包含每个包。


查看完整回答
反对 回复 2019-08-09
?
跃然一笑

TA贡献1826条经验 获得超6个赞

您可以

declare var require: any

或者,要获得更全面的支持,请使用DefinitelyTyped的require.d.ts

另外,var mongoose = require('mongoose')您可以尝试以下方法

import mongoose from 'mongoose' // orimport mongoose = require('mongoose')


查看完整回答
反对 回复 2019-08-09
  • 3 回答
  • 0 关注
  • 1088 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信