javascript - Miten konfiguroida TypeScript piilottamaan kaikki globaalit muuttujat ikkunasta (window), mutta silti päästä ikkunaan (window) käsiksi?
Kuinka konfiguroida TypeScript piilottamaan kaikki globaalit muuttujat ikkunasta, mutta pääsemään vain ikkunaan itseensä?
Esimerkki :
Tämä koodi toimii ilman ongelmia:
function foo(length: number): void {
// Console result: A number from this scope.
console.log(length);
}
mutta kun poistankin parametrin length. Linter on silti tyytyväinen. Koska length on globaali muuttuja window-oliosta. Katso dokumentaatio
function foo(): void {
// Console result: A number from window. (not expected in this case)
console.log(length);
}
Odotettu :
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);
}
Haluan piilottaa ikkuna-alueen globaalilta pääsyltä. Mutta haluan silti päästä ikkunan objektiin itse, jos kutsun sitä eksplisiittisesti kuten:
function foo(): void {
// This already works. But length itself without window as context should fail.
console.log(window.length);
}
Onko olemassa tsconfig- tai tslint-asetusta?
Vastaus #1
Tarkista https://palantir.github.io/tslint/rules/no-restricted-globals/ tslint-versio >= 5.13.0