Zde*_*cek 88 node.js typescript
如何node_modules从TypeScript类中加载常规NodeJS模块(from )?
当我尝试编译.ts包含以下内容的文件时:
var sampleModule = require('modulename');
Run Code Online (Sandbox Code Playgroud)
编译器提示我不能在此范围内使用require.(该行位于文件的开头).
Val*_*tin 95
打字稿在无法找到符号时总会抱怨.编译器附带一组默认定义window,document并在名为的文件中指定lib.d.ts.如果我require在这个文件中执行grep,我找不到函数的定义require.因此,我们必须告诉编译器这个函数将在运行时使用以下declare语法存在:
declare function require(name:string);
var sampleModule = require('modulename');
Run Code Online (Sandbox Code Playgroud)
在我的系统上,这编译得很好.
Jes*_*sse 48
正确的语法是:
import sampleModule = require('modulename');
Run Code Online (Sandbox Code Playgroud)
要么
import * as sampleModule from 'modulename';
Run Code Online (Sandbox Code Playgroud)
然后用--module commonjs.编译你的TypeScript .
如果包没有附带index.d.ts文件而且它package.json没有"typings"属性,那么tsc会发出它不知道'modulename'引用的内容.为此,您需要.d.ts在http://definitelytyped.org/上找到它的文件,或者自己编写一个文件.
如果您正在为Node.js编写代码,您还需要http://definitelytyped.org/中的node.d.ts文件.
rha*_*iso 40
最好的解决方案是获取Node的类型定义的副本.这不仅会解决各种依赖问题require().这是以前使用类似的软件包完成的typings,但正如Mike Chamberlain所说,Typings已被弃用.现代的方式是这样做:
npm install --save-dev @types/node
Run Code Online (Sandbox Code Playgroud)
它不仅会修复编译器错误,还会将Node API的定义添加到IDE中.
| 归档时间: |
|
| 查看次数: |
77042 次 |
| 最近记录: |