Vyhledávání na webu

typescript - Operátor čárky pro resetování this


V následujícím kódu

var x = { f: function () { return this === window } };
(0, x.f)();

Používám konstrukci (0, x.f), aby se funkce spustila s this rovno Window (nebo undefined v přísném režimu).

Ale TypeScript říká

Levá strana operátoru čárky není použita a nemá žádné vedlejší účinky.

Ale ve skutečnosti existuje vedlejší účinek na this funkce, kterou volám.

Jak bych měl napsat svůj kód, aby se tato chybová zpráva neobjevovala?

Odpověď č. 1

Samotná nula opravdu nemá vedlejší účinky, ale čárkový operátor je má.

Takže možným řešením je přidat as any k 0:

var x = { f: function () { return this === window } };
(0 as any, x.f)();

Související články