169 похожих чатов

Я бы хотел сделать функцию getItem обьекта localStorage более специфичным я

переопределил её, однако у меня IDE всё равно ссылается на WindowLocalStorage из node_modules/typescript/lib/lib.dom.d.ts это специфично для WebStorm или я что то не так делаю?

declarations.d.ts
export enum LocalStorageKeys {
LS_PROPOSALS_VIEW = 'fo-proposals-view-table',
}

type LS<T> = {
getItem(
key: T extends LocalStorageKeys ? LocalStorageKeys : string,
): T extends LocalStorageKeys ? LocalStorageKeys : string;
setItem: (key: string, value: string) => any;
};

declare global {
type Window = {
localStorage<T>({ getItem, setItem }: LS<T>);
}}

index.ts
const value = window.localStorage.getItem<LocalStorageKeys>(
LocalStorageKeys.LS_PROPOSALS_VIEW,
);

4 ответов

4 просмотра

а может просто сделать враппер поверх?

SirOrange- Автор вопроса

не хочется функцию экспортировать. Решил так, но интересно можно ли передеклалировать методы глобала без обёрток const value = (localStorage as LocalStorage< LocalStorageKeys.LS_PROPOSALS_VIEW >).getItem(LocalStorageKeys.LS_PROPOSALS_VIEW);

Явное лучше неявного. Не надо патчить встроенные методы, напиши враппер. Сам себе спасибо скажешь

SirOrange- Автор вопроса

спасиб, дед

Похожие вопросы

Обсуждают сегодня

Сообщение* в закодированном виде. То есть, просто сделать sendMessage?text=Привет бла-бла! не получится, надо в HEX переводить, и добавлять процент, типа такого: sendMessage?t...
КТ315
21
А случайно нет ли в паскале штатной возможности передать указатель и количество туда где array of в качестве аргумента?
zamtmn
25
Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
58
Всем привет. Испытываю проблемы в работе БД, а именно огромного роста логов, такого характера: 024-05-16 18:39:07 +05 sentry sentry [unknown] 1050169 7-1 app-sentry01.corp.ru>...
Alexey
2
Если подытожить: По мнению Розыча и Хемуля и др. - предпочтительно по возможности объявлять в секции имплементации потому-что: 1) Выше скорость компиляции 2) Не замусоривается...
notme
7
Хм. А телеграм апи работают через HTTP?
The Bird of Hermes
14
Ну раз я пока тут, задам пару глупых вопросов. Зачем писать на ассемблере если компилятор довольно умный, а ассемблер много времени занимает? В каких прикладных задачах сейчас...
Максим Рябцев
20
Почему Telegram пишет, что объект media не найден, хотя на самом деле я его передаю? Делаю на urllib, без зависимостей, так надо. Вызываю метод sendMediaGroup с таким JSON: ...
Alexey S
1
В дельфе нет никакого коробочного (без установки третьих либ) способа получить CallStack с расшифровкой отладочных символов?
notme
7
Приветики всем!)) Подскажите: есть функция, которая записывает число типа Cardinal в четыре байта, хранимые в TBytes. Можете помочь мне, показав, как должна выглядеть функци...
Моринаро
5
Карта сайта