Wpis z mikrobloga

@mortt: Wydawało mi się, że przejrzałem wszystkie opcje z pliku http://jshint.com/docs/options/
Jednak nie, nie wiem jak to się stało.
Chyba wtedy zacząłem czytać ten plik od połowy. xD

Ale automatycznie pojawia się problem że używam requirejs i mi pisze błąd define is not defined. document is not defined. projectClass is not defined, bo jest zapisane w osobnym pliku.

Proszę o pomoc.
@elmccd: Na razie to wystarczy, ale nie podoba mi się, że będę musiał dopisać tam każdej innej biblioteki. Co prawda używam requirejs i poprzez nią ładuję wszystkie biblioteki ale rożnie może być, może będę miał z którąś problem.

Dlatego taki moim zdaniem lepszym i uniwersalnym rozwiązaniem jest tak jakby połączenie wszystkich plików js, załadowanych np. z poziomu html, ale też requirejs.

Dzięki temu można się tym nie przejmować.

Dodatkowo, co właściwie
@look997: Z czego wiem to nie da się tego sprawdzać z poziomu JSHinta desda może być jakąś wartością dziedziczoną z prototypu, albo przypisaną w innym momencie. Odwołanie się do de.desda nie rzuci żadnego błędu w przeglądarce. Co innego zmienna która nie istnieje.

Zainwestuj w WebStorma, pisz komentarze w JSDoc i to powinno wystarczyć by nie robić literówek.
var de = {d:2,a:4};

var d = de.desda;


Tu JSHint nie zwróci błędu!

Także to duży osobny problem.


@look997: A dlaczego miałby zwrócić?! Tak jak pisze @elmccd, właściwość może być dziedziczona.
@P0lip: Ale w tym konkretnym przypadku nie jest.
Jeśli działamy w obrębie strony internetowej to wiemy jakie są właściwości pierwotne takiej strony. A te dodane i dziedziczone też można odszukać i na podstawie tego odpowiednio oznaczyć błędem.

Tak przynajmniej jest w QT Creator.
@look997

Ale w tym konkretnym przypadku nie jest.

Słowo klucz. JSHint nigdy nie będzie w stanie przewidzieć tego. Co jeśli jakiś skrypt jest ładowany dynamicznie czy asynchronicznie i dodaje taką właściwość do prototypu obiektu?
@look997 No można ustawić środowisko, ale nie o to mi chodzi. Chodzi mi o to, że nie jesteś w stanie założyć jakie właściwości będą istnieć w danym obiekcie. Rozszerzenie w przeglądarce (Firefox to potrafi) może dodać różne rzeczy do np. window.
@P0lip: To jest sytuacja która mnie nie dotyczy, jeśli tworzę program w js to nie interesuje mnie dodatkowa właściwość dodana na potrzeby dodatku do Firefoksa. :)

Ale nic, ten temat kończmy, poszukam czegoś gdzieś indziej.
@look997 Załóżmy, że JSHint informuje Cię, że window.foo jest undefined, a to może być nieprawdą. Po prostu to jest bezsensowne, zresztą nie takie jest założenie JSHinta