首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在TypeScript文件中使用NodeJS请求?

如何在TypeScript文件中使用NodeJS请求?
EN

Stack Overflow用户
提问于 2012-10-05 16:05:52
回答 5查看 122.5K关注 0票数 110

如何从TypeScript类中加载常规NodeJS模块(从node_modules)?

当我尝试编译包含以下内容的.ts文件时:

代码语言:javascript
复制
var sampleModule = require('modulename');

我不能使用的编译器提示需要这个作用域。(该行位于文件的开头)。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-10-05 16:26:40

Typescript在找不到符号时总是会报错。编译器附带了一组在名为lib.d.ts的文件中指定的windowdocument等的默认定义。如果我在这个文件中对require执行grep,我找不到函数require的任何定义。因此,我们必须自己告诉编译器,这个函数将在运行时使用declare语法存在:

代码语言:javascript
复制
declare function require(name:string);
var sampleModule = require('modulename');

在我的系统上,这段代码编译得很好。

票数 115
EN

Stack Overflow用户

发布于 2016-02-03 15:47:12

正确的语法是:

代码语言:javascript
复制
import sampleModule = require('modulename');

代码语言:javascript
复制
import * as sampleModule from 'modulename';

然后用--module commonjs编译你的TypeScript。

如果包没有附带index.d.ts文件,并且它的package.json也没有"typings"属性,tsc就会说它不知道'modulename'指的是什么。为此,您需要在http://definitelytyped.org/上为它找到一个.d.ts文件,或者自己编写一个。

如果您正在为Node.js编写代码,那么您还需要来自http://definitelytyped.org/node.d.ts文件。

票数 77
EN

Stack Overflow用户

发布于 2017-10-19 05:20:07

最好的解决方案是复制Node的类型定义。这将解决所有类型的依赖问题,而不仅仅是require()。这之前是使用像typings这样的包来完成的,但正如Mike Chamberlain所提到的,Typings已经被弃用。现代的方法是这样做的:

代码语言:javascript
复制
npm install --save-dev @types/node

它不仅可以修复编译器错误,还可以将Node API的定义添加到IDE中。

票数 52
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12742082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档