Начинаю изучать TypeScript, и возникло сложность с понимаем как типизировать такие конструкции.
Например есть три метода для работы с AsyncStorage в react native.
import AsyncStorage from '@react-native-community/async-storage';
//чтение данных
export async function getKey(key: string):Promise<string | null> {
try {
const value = await AsyncStorage.getItem(key);
return value
} catch (error) {
return error
}
}
//запись
export async function saveKey(key: string, value: string):Promise<void | Error> {
try {
await AsyncStorage.setItem(key, value);
} catch (error) {
return error
}
}
//удаление
export async function removeItemKey(key: string):Promise<void | Error> {
try {
await AsyncStorage.removeItem(key);
} catch (error) {
return error
}
}
При вызове например getKey() я хочу добиться, чтобы в него можно было передавать только определённые значения.
В моем случае это theme или auth. И если это getKey('theme') получить я должен только 'light' | 'dark' | null
type StoreTypes = {
theme: 'light' | 'dark' | null
auth: 'true' | 'false' | null
}