Я храню некоторые настройки в локальном хранилище, и я хотел бы напечатать ответы, когда получу (и в идеале также вставлю) значения из / в хранилище.
Из того, что я видел,Лучше всего использовать перегрузку функций.Вот что у меня сейчас и работает:
export enum SettingsKey {
hasOnboarded = 'hasOnboarded',
phoneNumber = 'phoneNumber'
}
export async function getSetting(storage: Storage, key: SettingsKey.phoneNumber): Promise<string>
export async function getSetting(storage: Storage, key: SettingsKey.hasOnboarded): Promise<boolean>
export async function getSetting(storage: Storage, key: any) {
return storage.get(key)
}
Что мне не нравится в этом решении, так это то, что можно забыть добавить новый элемент в перечислении в определения типов перегрузки.Есть ли способ обеспечить обработку всех значений перечисления?Или, может быть, есть лучший способ сделать это вообще?
Я думал, что это будет простая вещь, сопоставление значения hasOnboarded
для возврата типа boolean
и т. Д., Но это, очевидно, не так просто.
Мне кажется, что условные типы могли бы решить эту проблему, но я не могу полностью понять, как это работает.
Я также видел это подход, но это кажется слишком сложным.
Любая проницательность будет принята с благодарностью!