Estoy tratando de acceder a las claves en un objeto que es de tipo FilterType
Aquí está la interfaz -
export interface FilterType { name?: string[]; status?: string[]; brand?: string[]; categoryAndColour?: { [category: string]: string[]; }; rating?: string[]; }Aquí está el objeto -
const newState: FilterType = { ...state };
Estoy tratando de tener una función que elimine todas las claves de newState; sin embargo, cada vez que intento mapear a través del objeto o a un for...in, sigo recibiendo errores similares.
Actualmente estoy intentando esto -
for (var key in newState){ delete newState[key]; } return newState; Pero aparece el error El Element implicitly has an 'any' type because expression of type 'string' can't be used to index type
Y No index signature with a parameter of type 'string' was found on type
¿Como puedo resolver esto?
Ya que está tratando de crear un nuevo estado vacío, simplemente defina newState como un nuevo objeto:
const newState: FilterType = {}; Si aún desea eliminar todas las claves de todos modos, defina el tipo de key antes de usarla en for..in ( TS playground ):
let key: keyof FilterType; for (key in newState){ delete newState[key]; }Prueba esto:
Object.keys(newState).forEach((key) => delete newState[key]);ahora si ejecutas:
console.log(newState)el resultado esperado será un objeto vacío:
{ }