Есть ли у объекта Window методы для получения / установки ключей? - PullRequest
0 голосов
/ 08 ноября 2019

Я знаю, что могу просто написать window.myValue = 'something', но мне было интересно, существует ли какой-нибудь официальный механизм для установки / получения ключей на Window.

Что-то, что я могу сопоставить с интерфейсомПример:

window.setValue('myKey', 'myValue')
window.getValue('myKey')

Объяснение:

Я пытаюсь попрактиковаться в инверсии зависимостей и хотел бы использовать интерфейс, который отображается в Window.

interface GetterSetter {
  setValue(key: string, value: any): void
  getValue(key: string): any
}

function addHi(target: GetterSetter) {
  target.setValue('Hi', 'Marco')
}

addHi(window)

1 Ответ

1 голос
/ 08 ноября 2019

Если вам нужен функциональный способ установки и получения ключей, вы можете использовать Reflect:

Reflect.set(window, 'myKey', 'myValue');
console.log(Reflect.get(window, 'myKey'));

Это работает с любым объектом, не только с window.

(но с использованием обычной точечной нотации нет абсолютно ничего плохого)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...