Я недавно столкнулся с этой проблемой, используя TS, где можно случайно получить доступ к глобальным переменным (например, свойство окна).
Рассмотрим этот пример:
a.ts
// a.ts
export const postMessage = (message: string) => console.log(message);
b.ts
// Forget to import, but use libs: dom... so it compliles perfectly
// import { postMessage } from './a';
postMessage('hello'); // Oooops
Кажется, tslint не может и не собирается разбираться с этим делом.Сказать, что TS это обрабатывает.Но, возможно, TS не ...
IMO, желаемое поведение будет запрещать неявный доступ к глобальным переменным (глобальные свойства / свойства окна)
postMessage() // Error
window.postMessage() // OK
Кажется, это то, что eslint no-undef правило действует.
Кажется, в репозитории TS существует открытая проблема, но она довольно устаревшая ( Microsoft / TypeScript # 14306 )
Если вы знаете какой-либо рецепт / информацию, чтобы исправить это, пожалуйста, поделитесь.Или, может быть, я что-то забыл, и это довольно легко исправить (отсюда и глупый вопрос)