背景
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。
最佳答案
看来您走在正确的道路上。你能做这样的事情吗?
declare module 'path-browserify' {
import path from 'path'
export default path
}
对于您的用法,请尝试以下操作(而不是使用 * as
语法)
import path from 'path-browserify'
path.resolve(...)
顺便说一句,path
模块是否有默认导出...?
关于node.js - Typescript - 我可以从一个模块到另一个模块输入 "bolt-on"类型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56594448/