Node.js 如何通过@types为作用域/名称空间包安装TypeScript声明?
我使用的是TypeScript,我想使用一个范围有限的包(例如,Node.js 如何通过@types为作用域/名称空间包安装TypeScript声明?,node.js,typescript,npm,types,definitelytyped,Node.js,Typescript,Npm,Types,Definitelytyped,我使用的是TypeScript,我想使用一个范围有限的包(例如,@foo/bar,@babel/core,等等),它不提供自己的类型声明 我试着做一些类似的事情 npm install @types/@foo/bar 但它似乎不可用 有没有办法将这些包的.d.ts放入@types范围?如果需要,有没有办法在DefinitelyTyped上编写我自己的作用域包 有没有办法将这些包的.d.ts放入@types范围 是的,有办法!只是有点不直观 npm不允许作用域包在其名称中包含@,因此这些名称被篡
@foo/bar
,@babel/core
,等等),它不提供自己的类型声明
我试着做一些类似的事情
npm install @types/@foo/bar
但它似乎不可用
有没有办法将这些包的
.d.ts
放入@types
范围?如果需要,有没有办法在DefinitelyTyped上编写我自己的作用域包
有没有办法将这些包的.d.ts
放入@types
范围
是的,有办法!只是有点不直观
npm不允许作用域包在其名称中包含@
,因此这些名称被篡改为使用两个下划线代替@
例如,如果要为包@foo/bar
安装类型声明,则需要运行
npm install @types/foo__bar
如果需要,有没有办法在DefinitelyTyped上编写我自己的作用域包 对!!从: 作用域包的类型
@foo/bar
应进入Types/foo\u bar
。请注意双下划线
如果需要,有没有办法在DefinitelyTyped之外编写我自己的作用域包?--DefinitelyTyped接受pull请求的速度太慢了……我喜欢这个答案,但作为一个吹毛求疵的问题,也许应该注意的是,这两个下划线并没有“代替@”-它不是
@types/\uu foo/bar
。这两个下划线替换了@
和/
。换言之,删除@
,并将/
替换为\uuuu
:@scope/package
=>scope\uu package
。