javascript - Hur konfigurerar man TypeScript för att dölja alla globala variabler från window, men ändå få åtkomst till window själv?


Hur man konfigurerar TypeScript för att dölja alla globala variabler från window, endast komma åt window själv?

Exempel :

Den här koden fungerar utan några problem:

function foo(length: number): void {
  // Console result: A number from this scope.
  console.log(length);
}

men när jag tar bort parametern length. Linter är fortfarande nöjd. Eftersom length är en global variabel från window. Se dokumentationen

function foo(): void {
  // Console result: A number from window. (not expected in this case)
  console.log(length);
}

Förväntad :

function foo(): void {
  // Console result: undefined (or my global variable if exist)
  // And in case the variable does not exist, the linter will cry as expected.
  console.log(length);
}

Jag vill dölja fönsterskalan i global åtkomst. Men jag vill fortfarande komma åt fönsterobjektet självt om jag anropar det explicit som:

function foo(): void {
  // This already works. But length itself without window as context should fail.
  console.log(window.length);
}

Finns det ett tsconfig- eller tslint-alternativ?

Svar #1

Kontrollera https://palantir.github.io/tslint/rules/no-restricted-globals/ tslint version >= 5.13.0