您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

用于导入commonjs / amd模块的新es6语法,即`import foo = require('foo')`

用于导入commonjs / amd模块的新es6语法,即`import foo = require('foo')`

正确的方法是继续使用旧的导入语法。新的导入语法仅适用于ES模块,而旧的导入语法仅适用于ES6之前的模块。两者是截然不同的,有意如此。 。

来自功能的设计者:

TypeScript编译器在某个时候开始允许import * as foo from 'legacy-module- foo'在某些情况下获取旧版模块的认导入。 (第15.2.1.16节“值“ *”表示导入请求是针对目标模块的 名称空间对象。“)。

当您以这种方式导入的旧版模块更新为ES6模块时,这些模块的“认”导入将停止工作(因为* as foo导入 应该 是在导入名称空间对象),如果您不知道这样做,可能会造成极大的混乱这是一个TypeScript / SystemJS hack。将来TypeScript对ES规范的重新调整也有可能导致它们中断。

因此,您可能更希望继续使用上述的旧版导入语法来加载旧版模块,以避免使您自己和其他开发人员就您的代码对ES6名称空间导入的工作方式感到困惑,并避免使变更令人困惑。

其他 2022/1/1 18:21:25 有456人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶