打字稿:使用其他包中的类型

时间:2020-07-25 06:57:28

标签: javascript typescript

我对打字稿很陌生,想知道如何将从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实际上公开了很多类型。

0 个答案:

没有答案
相关问题