nodejs需要在TypeScript文件中
我想知道如何从TypeScript
类中的node_modules
目录加载正规的nodejs模块。
当我尝试编译包含以下内容的.ts
文件时:
var sampleModule = require('modulename');
编译器告诉我,我不能在这个范围内使用require。 (该行在文件的开头)。
有没有办法如何加载和使用TypeScript
类中的node_modules
模块?
当无法find符号时,Typescript将始终抱怨。 编译器为一个名为lib.d.ts
的文件指定了一组window
, document
等默认定义。 如果我在这个文件中做一个grep for require
,我可以find一个函数require
定义。 因此,我们必须自己告诉编译器,这个函数将在运行时使用declare
语法存在:
declare function require(name:string); var sampleModule = require('modulename');
在我的系统上,这个编译就好了。
正确的语法是:
import sampleModule = require('modulename');
要么
import * as sampleModule from 'modulename';
然后用--module commonjs
编译你的TypeScript。
如果软件包没有带有index.d.ts
文件,而package.json
没有"typings"
属性, tsc
就会吠叫,它不知道'modulename'
是指什么。 为此,您需要在http://definitelytyped.org/上find.d.ts
文件,或者自己写一个.d.ts
文件。
如果您正在为Node.js编写代码,则还需要http://definitelytyped.org/中的;node.d.ts
文件。
使用types从TypeScript访问节点函数:
typings install env~node --global
如果你没有打字😲安装:
npm install typings --global
正如迈克·张伯伦所说。 types被depricated和@types应该被使用。
npm i -D @types/node