在TypeScript中,从`import`和`import require`之间的区别
我使用node.js,最近我决定给TypeScript一个镜头,但我有点混淆模块如何导入。 我看到两种不同的语法,我无法确切地发现它们有什么不同:
import * as a from 'a'; // ES6 standard to import stuff // OR ... import a = require('a');
这些都是一样的吗? 如果他们不是,我应该在哪里使用他们每一个?
import * as a from 'a';
是新的“ES6样式”导入语法(从Typescript 1.5开始可用)。
只要有可能,现在应该使用这个语法。
有一个警告,但。 ES6导入语法只能导入作为模块一部分导出的模块(由ES6定义)或对象(类,接口,variables等)。
一些Javascript库会直接导出一个函数或类,相应的定义文件通常如下所示:
declare module "my-class" { class MyClass { ... } export = MyClass }
在这种情况下,“旧”导入语法是唯一可以使用的语法
import MyClass = require("my-class");
未能使用此语法将导致错误TS2497
检查这个问题的细节和一个可能的解决方法,在以前的情况下,将一个空的模块声明添加到定义文件
declare module "my-class" { class MyClass { ... } module MyClass {} // <= export = MyClass }