{} 类型的打字稿错误参数不可分配给 User 类型的参数 |用户 () => 用户

Typescript error argument of type {} is not assignable to parameter of type User | User () => User

检查了有关此错误的其他 Whosebug 帖子,但我仍然不明白。此代码块出现错误。

const [user, setUser] = useState<User>({})

我映射了需要来自用户数据的道具的卡片组件。为什么这不起作用?

我还有一个主页,可以通过这段代码吸引所有用户,但我没有收到类型错误。

const [users, setUsers] = useState<User[]>([])

为什么我没有收到这样的错误?

在您的第一个示例中,您的对象缺少必需的属性或不是 instanceof User

在您的第二个示例中,那只是一个空数组,因此可以正常工作。在这种情况下,User 描述了项目的类型要求。