背景
Node有一个名为path
的软件包,该软件包在@types/node
npm软件包中具有与之关联的类型定义文件。有人制作了一个名为path-browserify
的客户端程序包,该程序包具有相同的api 但没有类型。
问题
我可以将@types/node
类型的path
螺栓连接到path-browserify
上吗?基本上,我想在一个地方使用不同名称的类型。我已经尝试过了:
// types.d.ts
declare module 'path-browserify' {
export {default} from 'path'
}
// usage.ts
import * as path from 'path-browserify'
const joined = path.join('/', 'file');
// ^ COMPILE ERROR: join not found
const joined = path.default('/', 'file');
// ^ RUNTIME ERROR: default not found
但是我无法正确访问api。有没有更好的方法来使用这些类型定义?最好不要复制path
api。
答案 0 :(得分:1)
您看起来好像在正确的轨道上。你可以做这样的事情吗?
declare module 'path-browserify' {
import path from 'path'
export default path
}
关于您的用法,请尝试以下操作(而不是使用* as
语法)
import path from 'path-browserify'
path.resolve(...)
顺便说一句,path
模块甚至还具有默认导出功能吗??