Zrádné 'let' v Google Sheets Apps Script: Chyba, která se tváří jako syntaxe
Nedávno jsem narazil na nečekaný problém při práci se Google Apps Scriptem v rámci Google Sheets. Po dlouhých hodinách ladění a marných konzultacích s AI, která tvrdila, že je kód syntakticky naprosto v pořádku, se ukázalo, že "zakopaný pes" je jinde, než se zdálo.
Chyba se sémantikou nebo syntaxí?
Původní chybová zpráva byla matoucí:
Chyba syntaxe: Missing ; before statement. řádek: 1 soubor: Kód
Vypadalo to na klasickou chybu jako špatně umístěná závorka, zapomenutý středník nebo nesprávné uvozovky. Kód jsem kontroloval znovu a znovu, stejně jako nástroje pro kontrolu syntaxe. Vše bylo v pořádku.
Skutečný problém: Rezervovaná slova a prostředí
Problém nakonec spočíval v použití moderního klíčového slova let pro deklaraci proměnné. Ačkoliv je let standardní součástí moderního JavaScriptu (ES6+), prostředí, ve kterém běží starší verze Google Apps Scriptu, ho nemusí plně podporovat nebo interpretovat očekávaným způsobem, což může vést k chybám, které se maskují jako chyby syntaxe.
Konkrétně, můj kód používal:
let mojePromenna = "hodnota";
Řešení: Návrat ke kořenům
Rychlá a účinná oprava spočívala v nahrazení moderního let starším, ale spolehlivě podporovaným klíčovým slovem var:
var mojePromenna = "hodnota";
Po této drobné změně skript okamžitě začal fungovat! Celá "chyba syntaxe" na prvním řádku se vyřešila nahrazením jednoho klíčového slova. Poučení pro všechny vývojáře v Apps Scriptu:
- Ne vždy věřte AI, pokud jde o kontext specifického prostředí.
- Pokud Apps Script hlásí nesmyslnou chybu syntaxe na začátku souboru, zkuste zkontrolovat deklarace proměnných.
- Pro maximální kompatibilitu a stabilitu v Apps Scriptu je stále někdy bezpečnější používat
varnamístoletneboconst, dokud si nejste jisti, jakou verzi JS vaše prostředí skutečně používá.
Doufám, že tato zkušenost ušetří čas někomu jinému! 🙏