重新导出命名的打字稿接口会引发错误

Re-exporting named typescript interface throws error

我对重新导出命名的打字稿元素有疑问。

我有一个类似这样的反应文件:

CustomComponent/CustomComponent.tsx:

export interface CustomComponentProps { ... }

const CustomComponent: React.FunctionComponent<CustomComponentProps> = () => {
  ...
}
export default CustomComponent

CustomComponent/index.ts:

import CustomComponent from './CustomComponent'
export { CustomComponentProps } from './CustomComponent'

export default CustomComponent

报错信息如下:

Attempted import error: 'CustomComponentProps' is not exported from './CustomComponent'.

import CustomComponent from './CustomComponent'
import { CustomComponentProps } from './CustomComponent'

export default CustomComponent
export CustomComponentProps

错误信息是:

Parsing error: Declaration or statement expected

CustomComponent/index.ts 正常工作时:

import CustomComponent from './CustomComponent'
export * from './CustomComponent'

export default CustomComponent

此错误的可能原因是什么以及如何修复它以使用类似于(或类似)失败示例的导出?导出的格式很重要,因为需要控制从 index.ts.

导出的内容

我在写这个问题时以某种方式设法解决了我的问题,所以我分享了解决方案,因为我没有发现任何类似的问题:

import CustomComponent from './CustomComponent'
import {
  CustomComponentProps as CustomComponentPropsOriginal
} from './CustomComponent'

export default CustomComponent
export interface CustomComponentProps extends CustomComponentPropsOriginal {}

您需要在重新导出之前将其转换为类型。这应该有效:


export type { CustomComponentProps } from './CustomComponent'