Как переопределить определения глобальных переменных с помощью TS - PullRequest
1 голос
/ 03 марта 2020

Для нашего приложения на работе, я хочу призвать людей использовать обертку вокруг localStorage, которая автоматически конвертируется в / из JSON (а также имеет проверку типа на месте). Я попытался переопределить глобальное определение TS для window.localStorage:

declare global {
  interface Window {
    localStorage: null,
  }
}

, но это ничего не дало - есть ли способ предотвратить использование window.localStorage и еще лучше дать пользователю полезное предупреждение о том, почему он не компилируется?

Ответы [ 2 ]

1 голос
/ 03 марта 2020

скажем, если вы просто поместите

 interface Window {
    localStorage: null,
  }

в файл декларации, который является global , и поместите этот файл в какое-то место в вашем проекте, которое компилятор TS C ( VS Код Линтер) знает о том, что тогда вам даже не понадобится import './our-defs.d.ts'

1 голос
/ 03 марта 2020

Хорошо, неважно, это сработало, но мне пришлось явно импортировать файл:

import './our-defs.d.ts'

Однако, если кто-нибудь знает, как каким-то образом предоставить пользовательское сообщение об ошибке, это было бы здорово.

...