Empecé a desarrollar una aplicación en Angular + Ionic Framework.
Mi problema es que no sé cómo definir el tipo en un objeto devuelto para poder recuperar atributos específicos.
Creo que este es un problema común, pero no pude encontrar los resultados adecuados usando google.
Cuando trato de devolver mi token de autenticación desde el almacenamiento del dispositivo, que se parece a
{ key:'authData', value: token }No puedo compilar porque mi atributo de valor no se conoce en el campo de datos almacenados devuelto.
error TS2339: la propiedad 'valor' no existe en el tipo 'desconocido'.
return from(Storage.get({ key: 'authData' })).pipe(map(storedData => { if (!storedData || !storedData.value) { return null; } const parsedData = JSON.parse(storedData.value) }Así que estoy buscando algún tipo para definir el tipo de interfaz en el objeto de datos almacenados. ¡Atentamente!
Debe declarar un modelo en la parte superior de su archivo
interface StoredData { key: string; value: string; }Y luego en tu código:
return from(Storage.get({ key: 'authData' })).pipe(map(storedData: StoredData => { if (!storedData || !storedData.value) { return null; } const parsedData = JSON.parse(storedData.value) }Alternativamente, puedes engañar al linter con:
return from(Storage.get({ key: 'authData' })).pipe(map(storedData => { if (!storedData || !storedData['value']) { return null; } const parsedData = JSON.parse(storedData['value']) }