Ily*_*dik 30 import module typescript elision typescript3.8
我有一个types.ts定义一些类型的简单文件:
export interface MyInterface {
// ...
}
export const enum MyEnum {
// ...
}
export type MyType = {
// ...
}
Run Code Online (Sandbox Code Playgroud)
我看了一下新功能,import type最新的打字稿这里。据我所知,它旨在解决从 .js 文件导入时似乎主要发生的特定问题。
我可以使用importandimport type语句导入我的类型。两者似乎工作得同样好。问题是我应该更愿意import type更明确地帮助我避免一些理论上的边缘问题,还是我可以只是import为了简单而使用并依赖于import elision从编译的代码中删除这些问题?
换句话说:在这里使用有什么好处,import type还是应该用于特定情况以解决import elision缺点?
ux.*_*eer 26
简短回答:通过使用import typeandexport type语句更加明确似乎可以通过防止边缘情况问题产生可解释的好处,并为当前和即将推出的工具提供更好的基础,以通过类型定义分析提高处理性能和可靠性。
长答案:
正如TypeScript 3.8 发行说明所说:
import type仅导入用于类型注释和声明的声明。它总是会被完全擦除,因此在运行时不会有任何残留。同样,导出类型仅提供可用于类型上下文的导出,并且也会从 TypeScript 的输出中删除。
以下是两个实际示例,这些剩余导入如何在构建或运行时导致错误:
import type语句修复的与类型相关的奇怪 Webpack 错误,博客文章:利用 TypeScript 3.8 使用仅类型导入和导出另一个好处与分析类型定义的工具有关。目前有关于使用 Babel 设置打包器的好处的详细信息,但目前或以后可能也会使其他工具受益(例如 IDE 性能)。
对于 Babel 用户手动配置他们的设置:如果您在捆绑器设置中使用 Babel 7.9=> 和 TS 3.8=>,那么您可以删除以前需要的@babel/plugin-transform-typescript插件。
对于那些使用预先构建的 Babel 预设的设置:Babel 的团队建议配置 Babel 预设,以便使用明确的仅类型导入。
在博客文章中阅读更多内容:Babel 7.9 减少了包大小,添加了 TypeScript 3.8 支持。
更多关于在 TS 文档中使用 Babel 和 TypeScript的相关信息。
详细了解使用isolatedModulesTS 编译器选项的好处以及仅类型导入的工作原理- 一项新的 TypeScript 功能,使 Babel 用户受益
| 归档时间: |
|
| 查看次数: |
9182 次 |
| 最近记录: |