我试图将prop类型从一个视图组件导出到另一个容器组件,并将其用作状态类型定义:

// ./Component.tsx
export type Props {
    someProp: string;
}

export const Component = (props: Props ) => {
    ...etc
}

// ./AnotherComponent.tsx
import { Component, Props as ComponentProps } from "./Component";

type Props = {}

type State = ComponentProps & {};

class AnotherComponent extends React.Component<Props, State> {
    state: State;
    ...etc
}


但是我进入控制台:

Module '"./Component "' has no exported member 'Props'.


关于我应该如何处理的任何建议?

我也尝试根据this文章使用查找类型,但没有任何乐趣。

最佳答案

尝试这样的事情。基本上扩展组件Props,以包括所需的导入。

export interface IProps extends PropsOfYouChoiceThatYouImport {
 morePropsHere
}


也不包括国家规定的完全错误的IMO道具。做这样的事情:


interface IProps extends YourDesiredProps {
  someProp: string | null;
  // etc
}

interface IState {
  something: boolean
  // etc
}

export class ComponentName extends Component<IProps, IState> {
  // Define you state, and props here. You need to initialize the correct IState
  // and IProps above
}


至于控制台错误,我不确定您能做到这一点。尝试创建一个名为TypesInterfaces的文件夹。然后导出那个。

并根据需要在两个文件中将其导入为命名导出或默认导出。既然你想重用它。告诉我是否有帮助。如果您编写了一个快速的代码沙盒,我可以对其进行更多研究。

基本上我建议将其放入单独的文件中:

export type Props {
    someProp: string;
}

关于javascript - typescript / react :模块没有导出成员,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55610105/

10-16 14:11