【发布时间】:2022-01-25 09:09:19
【问题描述】:
我来自 JS 背景,现在正在学习 Typescript。我无法克服这个问题。 我有一个非常特殊类型的状态,我知道我将来需要使用它:
type NotificationValuesType = {
channel: string
for: NotificationUsageTypes
id: string
type: NotificationTypes
workspace: string
}[]
我正在像这样设置我的 React 状态:
const [dropdownsState, setDropdownsState] = useState<NotificationValuesType>([])
问题是,最初我现在只能type 和id,当用户选择它们时,我可以通过一系列下拉列表收集所有其余的道具,事件触发,然后用一个填充状态一次下拉,所以在某些时候,它只会是:
[{id: "id", type: "type", channel: "channel"}]
在下一个事件中,它将是 [{id: "id", type: "type", channel: "channel", workspace: "workspace"}] 和一个步骤和状态更新,以了解声明类型中的所有道具。
我不明白的是如何告诉 Typescript 在我知道所有道具之前不要对我大喊大叫,并确保我将来会知道所有需要的道具。
- 我绝对不能将这些道具设为可选,因为它们
不是可选的。 - 还尝试将状态类型设置为
NotificationValuesType | [],但打字稿一直在大喊大叫 - 我了解了类型断言并猜测它应该会有所帮助,但找不到任何在状态上使用它的示例。我能做点什么吗
喜欢
const [dropdownsState, setDropdownsState] = useState as <NotificationValuesType>([])???
感谢您一直阅读到最后! =)
【问题讨论】:
标签: reactjs typescript types typeerror