Kontrola typů pro JavaScript?

Ví někdo, jestli existuje dobrý nástroj pro analýzu kódu JavaScript a zjišťování chyb typu? Vím, že JavaScript je sám o sobě slabě a dynamicky typován, ale bylo by opravdu hezké, kdybych měl program, který by ověřil, že všechny moje přístupy k polím jsou rozumné a že se nepokouším zacházet s číslem například jako s řetězcem. Jsem si vědom toho, že v JavaScriptu existují platné případy použití, kdy je přidávání nebo odebírání polí nebo převod mezi různými typy platný a očekávaný, ale některé chyby jsou tak do očí bijící, že se zdá, že by mohly být zachyceny ještě před spuštěním skriptu.

Slyšel jsem o JSLint, ale chápu, že je to většinou stylový nástroj spíše než sémantický analyzátor. Pokud se v tom mýlím, pak by mi to byla správná odpověď na tuto otázku.

Odpověď

Kompilátor uzavření Google provádí určitou kontrolu typu, pokud se budete řídit jejich doporučeními pro anotaci vašich funkcí komentáři jsDoc. Viz http://code.google.com/closure/compiler/docs/js-for-compiler.html