In my React Native + TypeScript app, I've defined a bunch of types as follows:
export type Streak = { ... marked: Map<number, string>};export type Habit = { ... ... streak: Streak, ...}
When I save Habit
to AsyncStorage and read it back, I seem to be losing the Map
type of the marked
field, since I get marked
back as an object {}
type, and I cannot invoke functions like keys()
or has()
etc on marked
.
await AsyncStorage.setItem(habit.key, JSON.stringify(habit));........let res = await AsyncStorage.getItem(habit.key);let habit: Habit = JSON.parse(res); // I thought specifying the type Habit here would have given me `marked` back as a Mapif (habit.streak.marked.has(<someKey>)) { ... }
TypeError: ... marked.has is not a function ...
What should I be doing to preserve the Map
type?