首页 > 解决方案 > “IntrinsicAttributes & IntrinsicClassAttributes”类型不存在属性“图片”

问题描述

我正在尝试学习将 Recompose 与 Typescript 一起使用。代码吹得很好,但它在代码编辑器中给了我一个错误。问题与传递props给 HOC 有关。

interface IPicture {
    description: string;
    imageUrl: string;
}

interface IProps {
    pictures: IPicture[];
    index: number;
    prev: (len: number) => IEventListener;
    next: (len: number) => IEventListener;
}

interface IEventListener {
    handleEvent(evt: Event): void;
}

const PictureSlide: React.SFC<IProps> = ({ pictures, index, prev, next }) => {
    return (
        <Card>
            <img src={pictures[index].imageUrl} alt="picture" />
            <div
                style={{
                    display: "flex",
                    justifyContent: "space-between",
                    width: "100%",
                }}
            >
                <Button color="primary" onClick={() => prev(pictures.length)}>
                    Prev
                </Button>
                <Button color="primary" onClick={() => next(pictures.length)}>
                    Next
                </Button>
            </div>
        </Card>
    );
};

const enhancer = compose(
    withState("index", "updateIndex", 0),
    withHandlers({
        next: ({ updateIndex }) => (max: number) =>
            updateIndex((n: number) => (n === max ? 0 : n + 1)),
        prev: ({ updateIndex }) => (max: number) =>
            updateIndex((n: number) => (n === 0 ? max : n - 1)),
    })
);

export default enhancer(PictureSlide);

并从另一个组件导入此组件:

<PictureSlide pictures={coverCropSlideImages} />

该文件符合得很好,但我在代码编辑器中收到错误消息:

[ts] 类型“IntrinsicAttributes & IntrinsicClassAttributes> & Readonly<{ c...”上不存在属性“pictures”。

标签: typescriptrecompose

解决方案


推荐阅读