I have a normalized redux structure addressesState
as below. I need to define the type of that as specified in the comments
interface iAddressItem {
firstName: string;
lastName: string;
street: string;
}
const addressesState = {
// key "ids" is static
// value is Array<string>
ids: ["1345", "1346"],
// typeof key is string and it is dynamic
// typeof value is iAddressItem
"1345": {
firstName: "Cinta",
lastName: "Riardo",
street: "Cake Street 34",
},
// typeof key is string and it is dynamic
// typeof value is iAddressItem
"1346": {
firstName: "Nosipho",
lastName: "Tracey",
street: "Baker Street 42",
},
};
I tried to define the type of addressesState as below:
type AddressesType = {
[key in string | number]?: iAddressItem;
} & {
ids?: Array<number>;
};
But when I'm initializing the redux state as:
const initalAddressesState: AddressesType = {
ids: []
}
I'm getting the error:
Type '{ ids: never[]; }' is not assignable to type 'AddressesType'.
Type '{ ids: never[]; }' is not assignable to type '{ [x: string]: iAddressItem | undefined; [x: number]: iAddressItem | undefined; }'.
Property 'ids' is incompatible with index signature.
Type 'never[]' is missing the following properties from type 'iAddressItem': firstName, lastName, street(2322)
Any bits of help or insights would be great