2011-02-08 21 views
6

Czy ktoś wie, czy istnieje dobre narzędzie do analizy kodu JavaScript i wykrywania błędów typu? Wiem, że sama JavaScript jest słabo i dynamicznie wpisywana, ale byłoby mi naprawdę miło, gdybym mógł mieć program, który sprawdzi, czy wszystkie moje odwołania do pól są sensowne i że nie próbuję na przykład traktować numeru jak ciąg znaków. Mam świadomość, że istnieją poprawne przypadki użycia w JavaScript, w których dodawanie lub usuwanie pól lub konwersja między różnymi typami jest poprawne i oczekiwane, ale niektóre błędy są tak rażące, że wydaje się, że mogą zostać przechwycone przed uruchomieniem skryptu.Sprawdzanie pisowni dla JavaScript?

Słyszałem o JSLint, ale rozumiem, że jest to raczej narzędzie stylowe niż semantyczne. Jeśli się mylę, to po prostu mówienie mi tak będzie prawidłową odpowiedzią na to pytanie.

+0

Interesujące pytanie, ale nie jestem pewien, czy statyczny sprawdzian jest w stanie określić niewłaściwe zastosowania, biorąc pod uwagę, jak często dynamiczne właściwości JS są wypychane do granic możliwości. Czy możesz podać przykłady niektórych "rażących błędów"? –

+0

Na przykład, mam obiekt utworzony z 'new MyClass()'. Ta klasa ma tylko jedno pole o nazwie "value". Następnie mam inną część kodu próbuję odczytać pole 'notAValue', które nie jest zdefiniowane w' MyClass'. – templatetypedef

Odpowiedz

1

Nie można wykonać analizy statycznej bez obaw za pomocą dowolnego narzędzia automatycznego ze względu na dynamiczną naturę JavaScript. Jednak jednym z narzędzi, które świetnie się spisują, jest Jetbrain WebStorm i inne IDE, które mają obsługę JavaScript.

0

siebie opcję - https://github.com/yarax/typelint

Jest to plugin EsLint, że ma typ kontroli na podstawie adnotacji JSDoc.

Ponadto obsługuje własne rozszerzenie do korzystania ze schematów Redux lub Swagger (w zasadzie dowolnego schematu JSON) do sprawdzenia typu. Nie musisz więc samodzielnie opisywać złożonych typów kompozytów.

0

Istnieje nowy sprawdzacz typów z Facebooka - flow.

Ma również plugin, który konwertuje adnotacje JSDoc na adnotacje przepływu.

Powiązane problemy