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

打字稿得到错误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 --save

tsd install require --save

生成的.js文件似乎工作正常,所以我可以忽略错误。但我很想知道为什么会出现这种错误以及我做错了什么。


慕神8447489
浏览 1175回答 3
3回答

湖上湖

对于TypeScript 2.x,现在有两个步骤:安装定义的包require。例如:npm&nbsp;install&nbsp;@types/node&nbsp;--save-dev告诉TypeScript将其全局包含在tsconfig.json:{ &nbsp;&nbsp;&nbsp;&nbsp;"compilerOptions":&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"types":&nbsp;["node"] &nbsp;&nbsp;&nbsp;&nbsp;}}第二步仅在您需要访问全局可用功能时才很重要require。对于大多数包,您应该只使用该import package from 'package'模式。不需要在上面的tsconfig.json类型数组中包含每个包。

跃然一笑

您可以declare&nbsp;var&nbsp;require:&nbsp;any或者,要获得更全面的支持,请使用DefinitelyTyped的require.d.ts另外,var mongoose = require('mongoose')您可以尝试以下方法import&nbsp;mongoose&nbsp;from&nbsp;'mongoose'&nbsp;//&nbsp;orimport&nbsp;mongoose&nbsp;=&nbsp;require('mongoose')
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Node.js