Typescript 类型文件的文件名和后缀问题

2021-09-18 18:16:11 +08:00
 vision1900

假设我写了一个组件并把与它相关的文件放在了一个文件夹下:


HelloWorld
	index.tsx
    interface.ts
    

其中 index.tsx 引用了 interface.ts 中的类型并 default export 了组件

想使用这个组件的话会这样引用: import HelloWorld from '../../HelloWorld'

由于组件是在 HelloWorld 里面的 index.tsx 被 default export 的,所以不需要这样写: import HelloWorld from '../../HelloWorld/index'

也就是说 index 是个特殊的文件名,代表该文件夹下的默认文件

现在我想要从外部引用 interface.ts 里面的类型, 看到一些库会把类型文件叫做 index.d.ts 或者 interface.d.ts, 所以我也尝试改文件名(interface.ts -> interface.d.ts | index.d.ts)并期待能够这样做: import { MyType } from '../../HelloWorld'

但是好像不行, 请问下 *.ts*.d.ts 有什么区别,index.d.tsinterface.d.ts 是会被特殊处理的文件名吗?谢谢

当然我可以在 index.ts 去 import 类型再 export 它们,这样就能直接在外面用了,但感觉有点麻烦

1143 次点击
所在节点    TypeScript
3 条回复
seki
2021-09-18 18:24:25 +08:00
d.ts 后缀是特殊的,叫做类型声明文件,这里面不会有实际的 js 代码,只有类型
nieyujiang
2021-09-18 18:42:47 +08:00
d.ts 文件有点类似 c 和 c++的头文件.只有定义,没有实现
muzuiget
2021-09-18 18:55:08 +08:00
*.d.ts 是类型文件,TypeScript 文件需要“编译”,编译后生成普通的 .js 文件,和 .d.ts ,你把 .d.ts 当成一种特殊的 source map 文件就好,就给你开发调试用的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/802826

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX