typescript 哪一个是数组的正确类型[]或[type]?[duplicate]

yhqotfr8  于 2022-12-05  发布在  TypeScript
关注(0)|答案(1)|浏览(145)

此问题在此处已有答案

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)
        },
    },
})
2ic8powd

2ic8powd1#

正如你所说,它不接受一个以上的对象,这一行本身回答了你的问题。
当定义内部有类型的数组时,它会创建一个具有特定长度(元组)的数组类型。
在某些情况下,你可能只需要数组中特定数量的元素,例如,当处理象限和填充时,矩阵只有2或最多3,所以这里定义类型为number[]没有意义。这里[number, number, number]将是完美的。

相关问题