此问题在此处已有答案:
Difference between type[] and [type] in typescript(2个答案)
昨天关门了。
所以我有下面,我是新的 typescript ,我正在创建一个项目与React。
但是typescript不喜欢PayloadAction,所以我把它改为〈UserData[]〉,然后〈[UserData]〉但是我实际上不明白我在做什么,只是我认为我的UserData是作为数据数组返回/发送的- [UserData]等等......
它接受两者,我不100%肯定这是实际上正确的,在我的情况下,并试图参考文件,但我不认为我已经明白它如何适用于我的数据。
pushData似乎是正确的,因为它只接受包含UserData但不超过1个条目的对象。
虽然这是typeScript,但可能需要指出这是针对使用RTK的州
export type UserData = {
_id?: string
name: string
quantity: string | number
paid: string | number
date: string
}
export interface TransactionSlice {
data: UserData[]
}
const initialState: TransactionSlice = {
data: [],
}
export const transactionSlice = createSlice({
name: 'transactionData',
initialState,
reducers: {
addData: (state, action: PayloadAction<[UserData]>) => {
state.data = action.payload
},
pushData: (state, action: PayloadAction<UserData>) => {
state.data.push(action.payload)
},
},
})
1条答案
按热度按时间2ic8powd1#
正如你所说,它不接受一个以上的对象,这一行本身回答了你的问题。
当定义内部有类型的数组时,它会创建一个具有特定长度(元组)的数组类型。
在某些情况下,你可能只需要数组中特定数量的元素,例如,当处理象限和填充时,矩阵只有2或最多3,所以这里定义类型为
number[]
没有意义。这里[number, number, number]
将是完美的。