Typescript - 我可以 "bolt-on" 从一个模块输入到另一个模块吗?
Typescript - Can I "bolt-on" types from one module to another module?
背景
Node 有一个名为 path
的包,它在 @types/node
npm 包中有一个与之关联的类型定义文件。有人制作了一个名为 path-browserify
的客户端包,它具有 相同的 api 但没有类型。
问题
我可以将 path
的 @types/node
类型与 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 有一个名为 path
的包,它在 @types/node
npm 包中有一个与之关联的类型定义文件。有人制作了一个名为 path-browserify
的客户端包,它具有 相同的 api 但没有类型。
问题
我可以将 path
的 @types/node
类型与 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
模块是否有默认导出...?