我使用node.js,最近我决定尝试一下TypeScript,但我对如何导入模块感到有点困惑。我看到了两种不同的语法,我找不到它们的确切区别:
import * as a from 'a'; // ES6 standard to import stuff
// OR ...
import a = require('a');这是同一件事吗?如果它们不是,我应该在哪里使用它们呢?
发布于 2016-06-06 16:04:22
import * as a from 'a';是新的"ES6 style“导入语法(从TypeScript1.5开始可用)。
只要有可能,现在就应该使用此语法。
不过,有一点需要注意。ES6导入语法只能导入模块(由ES6定义)或对象(类、接口、变量... )作为模块的一部分导出。
一些Javascript库将直接导出函数或类,相应的定义文件通常如下所示:
declare module "my-class" {
class MyClass { ... }
export = MyClass
} 在这种情况下,“旧的”导入语法是唯一可以使用的语法
import MyClass = require("my-class");未使用此语法将导致错误TS2497
有关详细信息和可能的解决方法,请查看this issue。在前一种情况下,可以将空模块声明添加到定义文件中
declare module "my-class" {
class MyClass { ... }
module MyClass {} // <=
export = MyClass
} https://stackoverflow.com/questions/37651495
复制相似问题