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

tsc 在生成.d.ts 类型文件的时候,能否指定全放进一个文件里面或者去掉 folder structure

  •  
  •   yazoox · 2021-09-17 07:48:28 +08:00 · 2028 次点击
    这是一个创建于 1167 天前的主题,其中的信息可能已经有所发展或是发生改变。

    tsconfig.json 里面,好像只能指定 outDir folder,e.g. {"outDir": "dist"}

    这样,生成的.d.ts 会放在./dist 目录下面,目录结构,和原文件所在的目录结构是一样的。但是,现在我想把所有的 type declaration 都放在一个文件里,比如:custom.d.ts 或者 index.d.ts 。

    如果不行,能否不要目录结构,即所有的.d.ts 都放在./dist 目录下面,平铺展开。当然,这样会有另外问题,可能会出现很多 index.d.ts ,需要 tsc 支持指定命令规则。

    所以,不知道 tsc 有没有相关配置选项?能够支持这样做?还是说,就是做不到。除非我们自己写插件,等等。

    谢谢!

    8 条回复    2021-09-22 10:55:19 +08:00
    noe132
        1
    noe132  
       2021-09-17 07:54:34 +08:00
    xxx.d.ts 对应 xxx.js
    你全放一个目录下那对应哪个文件呢?
    Origami404
        2
    Origami404  
       2021-09-17 08:19:46 +08:00 via Android
    生成完 find+mv 一个不可以吗
    JK9993
        3
    JK9993  
       2021-09-17 09:05:28 +08:00
    declarationDir
    Leviathann
        4
    Leviathann  
       2021-09-17 09:07:16 +08:00 via iPhone
    rollup 有个插件 rollup-plugin-dts 就是把指定文件夹下的.d.ts 文件打包到一个 index.d.ts 里
    yazoox
        5
    yazoox  
    OP
       2021-09-17 09:58:17 +08:00
    @noe132 不需要一一对应吧,尤其是目录结构还一一对齐。

    @Leviathann 晕。忘记说了,我们用的是 webpack,我去找找,看看有没有对应的插件。
    houzhenhong
        6
    houzhenhong  
       2021-09-17 12:40:37 +08:00
    Trim21
        7
    Trim21  
       2021-09-17 12:46:46 +08:00 via Android
    不对应的话别人导入的时候怎么把.d.ts 和 js 对应起来呢…
    yazoox
        8
    yazoox  
    OP
       2021-09-22 10:55:19 +08:00
    @Trim21 不需要吧,只是类型信息而已。
    只要索引后,能够找到该类型就行(用于 eslint 和 build ),至于放在哪个文件里面,不重要吧。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1202 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 23:16 · PVG 07:16 · LAX 15:16 · JFK 18:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.