我是否需要使用";“进口类型”;如果我的所有导入都来自我自己的文件,那么TypeScript 3.8的功能是什么?
我有一个简单的文件我是否需要使用";“进口类型”;如果我的所有导入都来自我自己的文件,那么TypeScript 3.8的功能是什么?,typescript,import,module,elision,typescript3.8,Typescript,Import,Module,Elision,Typescript3.8,我有一个简单的文件types.ts,它定义了一些类型: export interface MyInterface { // ... } export const enum MyEnum { // ... } export type MyType = { // ... } 我已经阅读了有关最新typescript的新功能导入类型。据我所知,这是为了解决特定的问题,这似乎主要发生在从.js文件导入时 我可以使用import和import type语句导入我的类型。这两种方法似乎
types.ts
,它定义了一些类型:
export interface MyInterface {
// ...
}
export const enum MyEnum {
// ...
}
export type MyType = {
// ...
}
我已经阅读了有关最新typescript的新功能导入类型
。据我所知,这是为了解决特定的问题,这似乎主要发生在从.js文件导入时
我可以使用import
和import type
语句导入我的类型。这两种方法似乎都同样有效。问题是我应该更喜欢导入类型
,因为它更明确,帮助我避免一些理论上的边缘案例问题,还是我可以简单地使用导入
,并依靠导入省略
从编译代码中删除它们
换句话说:在这里使用导入类型
有什么好处吗?或者应该在特定情况下使用它来解决导入省略
的缺点?简短回答:通过使用导入类型
和导出类型
语句更加明确,似乎可以通过防止边缘案例问题,以及通过类型定义分析为当前和即将推出的工具提供更好的基础,以提高处理性能和可靠性
长答覆:
比如说:
导入类型
仅导入用于类型批注和声明的声明它总是被完全擦除,因此在运行时没有剩余部分。类似地,导出类型仅提供可用于类型上下文的导出,并且也从TypeScript的输出中擦除
以下是两个实际示例,说明这些残余导入如何在生成或运行时导致错误:
- 与奇怪类型相关的网页错误由
语句修复,一篇博客文章:import type
- 关于
@Babel/plugin transform typescript
插件
对于那些使用预构建巴别塔预设的设置:巴别塔的团队建议配置巴别塔预设,以便使用显式类型导入
在博客文章中阅读更多信息:
更多关于TS文档的相关信息
详细了解使用isolatedModules
TS编译器选项的好处和工作方式