有办法在node_modules 外保存依赖包的@types文件的同时保证解析器能读到这个类型说明吗?
今天在给koa项目引入@types/koa的时候发现,它在ctx上没有标注body…但既有项目上有大量通过ctx.body取请求体里值的代码 修改@types/koa 的index.d.ts是很容易,问题是重新安装依赖的时候并不会是修改后的版本,而直接保存依赖包又比较不合理 所以想在 nodemodules 外新建一个typing来保存koa的类型声明… 然后,我发现,单纯的把类型依赖移进去,并通过指定 (路径被转义了…凑合看…)
{
"compilerOptions": {
"typeRoots" : [
"./typings/[@types](/user/types)/",
"./node_modules/[@types](/user/types)/"
]
},
}
是读不出来的,貌似是koa的包里有指明存在声明文件的话会在哪?或者是默认规则? 有办法,在nodemodules外单独维护第三方依赖包的类型声明文件么?
2 回复
搞定了…把koa的index.d.ts拉出来改名为koa.d.ts就行了 保险起见依赖里也留着估计就没问题了
使用 TypeScript 的 Declaration Merging 特性 https://www.typescriptlang.org/docs/handbook/declaration-merging.html