正确的方法是继续使用旧的导入语法。新的导入语法仅适用于ES模块,而旧的导入语法仅适用于ES6之前的模块。两者是截然不同的,有意如此。 。
来自功能的设计者:
TypeScript编译器在某个时候开始允许import * as foo from 'legacy-module- foo'
在某些情况下获取旧版模块的默认导入。 (第15.2.1.16节,“值“ *”表示导入请求是针对目标模块的 名称空间对象。“)。
当您以这种方式导入的旧版模块更新为ES6模块时,这些模块的“默认”导入将停止工作(因为* as foo
导入 应该 是在导入名称空间对象),如果您不知道这样做,可能会造成极大的混乱这是一个TypeScript / SystemJS hack。将来TypeScript对ES规范的重新调整也有可能导致它们中断。
因此,您可能更希望继续使用上述的旧版导入语法来加载旧版模块,以避免使您自己和其他开发人员就您的代码对ES6名称空间导入的工作方式感到困惑,并避免使变更令人困惑。