typescript (()=>无效)|未定义的“:”应为,ts(1005)

d6kp6zgx  于 2023-03-04  发布在  TypeScript
关注(0)|答案(1)|浏览(226)

伙计们!我在输入React prop 时遇到了点小问题。
我有函数deletePost,我想转发到组件AuthorPostsList,但我总是得到一个警告,但 typescript :(属性)是否删除作者帖子列表属性?:(()=〉无效)|未定义“:”,应为。ts(1005)。
删除帖子:

const deletePost = () =>{
   console.log('test! post was deleted')
}

作者帖子列表:

interface AuthorPostsListProps{
    posts: IPost[];
    me: boolean;
    delete?: () => void;
}

const AuthorPostsList: FC<AuthorPostsListProps> = ({posts, me, delete}) => {

    return (
        <div className='author-list'>
            {posts.map(post => 
                <AuthorPostsItem me={me} key={post._id} post={post}/>
            )}
        </div>
    );
};
export default AuthorPostsList;

转发到AuthorPostsList:

<AuthorPostsList me={true} delete={deletePost} posts={posts} />

我很困惑。我不明白我做错了什么。请提供建议。谢谢

lp0sw83n

lp0sw83n1#

您应该知道delete是一个javascript关键字,不能用作标识符,尽管它可以用作对象属性名。

const obj = { delete: () => null } // fine
const { delete } = obj // error

所以你不能有一个名为delete的局部变量,就像你在重构你的props时那样。
将其更改为deletePost可能会解决您的问题。

相关问题