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

如何给相对路径的 json 文件添加类型定义

  •  
  •   lee88688 · 2022-12-29 15:46:53 +08:00 · 962 次点击
    这是一个创建于 456 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我们为了便利性使用 webpack loader 将某些 json 的配置转换为 js 的代码,有没有办法给这个相对路径下的 json 添加 ts 的类型定义呢?加入类型定义是为了让导入的人不会觉得奇怪,为什么这个 json 可以导入一个函数,算是增加代码可读性把。

    导入 json 的代码如下,如何才可以给fn添加类型定义呢?

    import { fn } from './some.json'
    
    const v = fn('xxx')
    

    我尝试了下面这个方案,但并不行,typescript 好像只能给全局的模块添加,并不能给相对路径添加统一的类型定义。

    declare module '*/some.json' {
      declare const fn: (k: string) => string
      export { fn }
    }
    

    通过添加类型定义文件可以得到类型定义,例如在some.json目录下添加some.json.d.ts类型定义,在导入的时候就可以得到正确的类型定义了。但这种方法会显得非常的冗余。 各位大佬有没有比较好的可以全局定义方案呢?

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2790 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 84ms · UTC 12:22 · PVG 20:22 · LAX 05:22 · JFK 08:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.