声明模块界面打字稿和纱线工作区

时间:2019-03-20 03:24:59

标签: reactjs typescript

我正在使用打字稿和纱线工作区。我具有以下文件夹结构:

- UI Library (Exports React Components)
- Main App

UI库具有一个主索引文件,主应用将从该主文件导入。

UI库主要index.js:

export { default as Icon } from './Icon';

然后在我导入的主应用中,如下所示:

import { Icon } from 'ui-library';

如何使用打字稿声明UI库?

我尝试了以下操作,但我想您无法导入相对路径。在我的ui lib中,我创建了一个.d.ts文件,类似

import { TIconProps } from "./Icon";

declare module 'ui-library' {
  export function Icon(props: TIconProps): React.ReactNode;
}

我收到错误Invalid module name in augmentation.

1 个答案:

答案 0 :(得分:0)

我可以使用import("mod")访问非模块脚本。

https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-9.html#import-types

像这样:

declare module 'ui-library' {
  export const Icon: React.FC<import('./Icon').TIconProps>;
}