V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
vision1900
V2EX  ›  TypeScript

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

  •  
  •   vision1900 · 2021-09-18 18:16:11 +08:00 · 1338 次点击
    这是一个创建于 1161 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    
    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 它们,这样就能直接在外面用了,但感觉有点麻烦

    3 条回复    2021-09-18 18:55:08 +08:00
    seki
        1
    seki  
       2021-09-18 18:24:25 +08:00
    d.ts 后缀是特殊的,叫做类型声明文件,这里面不会有实际的 js 代码,只有类型
    nieyujiang
        2
    nieyujiang  
       2021-09-18 18:42:47 +08:00
    d.ts 文件有点类似 c 和 c++的头文件.只有定义,没有实现
    muzuiget
        3
    muzuiget  
       2021-09-18 18:55:08 +08:00
    *.d.ts 是类型文件,TypeScript 文件需要“编译”,编译后生成普通的 .js 文件,和 .d.ts ,你把 .d.ts 当成一种特殊的 source map 文件就好,就给你开发调试用的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1909 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 16:17 · PVG 00:17 · LAX 08:17 · JFK 11:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.