别人定义了一个接口中的参数,但是是模糊定义。
// @types/aaa
interface vcss {
verticalAlign: string | null;
}
我需要改成
// vcss.d.ts
interface vcss {
verticalAlign: 'top' | 'center' | 'bottom' | 'middle'
}
我如果直接写在项目里可以用。但是如果我发包就不行了。
在npm包里面,我发一个@types/bbb,然后在项目里面引用就失效了,为什么?
// package.json
{
"name": "@types/bbb",
"dependencies": {
"@types/aaa": "^1.21.0"
},
"file":["*.d.ts"]
}
// index.d.ts
/// <reference types="@types/aaa" />
/// <reference path="vcss.d.ts" />
怎么样才能发布的情况下覆盖他的申明?其他属性不变
这个是正常的,因为项目中查找
verticalAlign
类型定义时,发现了两处:一个是@types/aaa 一个是在 @types/bbb ,这两个包你都引用了。解决的话,可以换个方式or思路,提供3个方式可参考下: