javascript - Exponera TypeScript-variabel till JS globalt omfång (med webpack)


Jag använder webpack för att kompilera min TypeScript till Javascript och jag vill exponera en variabel till den globala scopet så att andra kan komma åt den.

Jag vet hur man gör följande i TypeScript

window["MyVariable"] = 'Hello';

och läs det i JavaScript på det sättet

console.log(window.MyVariable);

Men jag skulle föredra om jag bara kunde ha det i det globala omfånget sådär.

console.log(MyVariable);

Är detta möjligt?

Med vänliga hälsningar, Nick

Svar #1

Allt som finns i det globala omfånget kan nås utan window. i JavaScript. Så om du sätter window['MyVariable']='Hello', kan du få åtkomst till det i JavaScript enkelt med MyVariable.

Svar #2

Självklart kan du göra detta; TS lägger bara till typkontroll (och gör viss transpilation beroende på vilken ES-version som är målet).

Eftersom window är det globala objektet i webbläsaren, gör att lägga till medlemmar till det dem tillgängliga globalt.

Beroende på inställningarna för strikthet (t.ex. att inte tillåta implicit any) kan du få ett kompileringsfel, men det är enkelt att kringgå:

(window as any).MyVariable = 'Hello';

Relaterade artiklar