假设我写了一个组件并把与它相关的文件放在了一个文件夹下:
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.ts
和 interface.d.ts
是会被特殊处理的文件名吗?谢谢
当然我可以在 index.ts 去 import 类型再 export 它们,这样就能直接在外面用了,但感觉有点麻烦
1
seki 2021-09-18 18:24:25 +08:00
d.ts 后缀是特殊的,叫做类型声明文件,这里面不会有实际的 js 代码,只有类型
|
2
nieyujiang 2021-09-18 18:42:47 +08:00
d.ts 文件有点类似 c 和 c++的头文件.只有定义,没有实现
|
3
muzuiget 2021-09-18 18:55:08 +08:00
*.d.ts 是类型文件,TypeScript 文件需要“编译”,编译后生成普通的 .js 文件,和 .d.ts ,你把 .d.ts 当成一种特殊的 source map 文件就好,就给你开发调试用的。
|