我对打字稿很陌生,想知道如何将从Base包发出的类型用于Child包中?
我用type.d.ts创建了一个名为BasePackage的包,将type.d.ts文件中使用的所有类型定义为:
declare namespace BaseTypes {
export type MyBaseType = { name: string };
}
在Base> package.js中:
"types": "./dist/index.d.ts",
现在,在Child包的type.d.ts文件中,我有:
declare module 'BasePackage';
有了这个,我期望将Child包中的MyBaseType用作:
const myVar: BaseTypes.MyBaseType = {
name: "Hello World!"
}
但显示错误:
Cannot find namespace 'BaseTypes'.
我尝试将其导入为:
import { BaseTypes } from 'BasePackage';
const myVar: BaseTypes.MyBaseType = {
name: "Hello World!"
}
然后它告诉我:
Namespace '"BaseTypes"' has no exported member 'MyBaseType'.
如果我尝试从BasePackage导出名称空间BaseType,它会向我显示基本包中的错误,并且我无法在BasePackage本身中使用这些类型。
我已经在这个问题上放弃了很多。 这样可以共享类型吗?还是像其他任何导出一样,我只能选择从BasePackage导出类型,然后导入ChildPackage中的类型以使用它们?我想避免使用该路由,因为BasePackage实际上公开了很多类型。