Dlaczego JSHint wysyła ostrzeżenie, Jeśli używam const?

Jest to błąd, który pojawia się podczas używania const:

<error line="2" column="1" severity="warning" message="&apos;const&apos; is available in ES6 (use esnext option) or Mozilla JS extensions (use moz)." source="jshint.W104" />

Mój kod wygląda tak:

const Suites = {
    Spade: 1,
    Heart: 2,
    Diamond: 3,
    Club: 4
};

Kod działa dobrze tylko JSHint ostrzega mnie za każdym razem.

Author: Zanon, 2014-12-12

10 answers

Gdy korzystasz z funkcji ECMAScript 6, takich jak const, powinieneś ustawić tę opcję, aby JSHint nie generował niepotrzebnych ostrzeżeń.

/*jshint esnext: true */ (Edit 2015.12.29 : zaktualizowana składnia odzwierciedlająca @Olga ' s comments )

/*jshint esversion: 6 */

const Suites = {
    Spade: 1,
    Heart: 2,
    Diamond: 3,
    Club: 4
};

Ta opcja, jak sama nazwa wskazuje, mówi JSHint, że Twój kod używa składni specyficznej dla ECMAScript 6. http://jshint.com/docs/options/#esversion

Edycja 2017.06.11 : dodano kolejną opcję na podstawie tej odpowiedzi .

Podczas gdy konfiguracja inline działa dobrze dla pojedynczego pliku, możesz również włączyć to ustawienie dla całego projektu, tworząc plik .jshintrc w głównym projekcie i dodając go tam.

{
  "esversion": 6
}
 351
Author: James Hibbard,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-30 20:02:39

Możesz dodać plik o nazwie .jshintrc w aplikacji root z następującą zawartością, aby zastosować to ustawienie dla całego rozwiązania :

{
    "esversion": 6
}

Odpowiedź Jamesa sugeruje, że możesz dodać komentarz /*jshint esversion: 6 */ dla KAŻDEGO pliku , ale jest to więcej pracy niż konieczne, jeśli potrzebujesz kontrolować wiele plików.

 224
Author: Zanon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-30 13:43:22

Spędziłem wieki próbując to naprawić. Każde rozwiązanie mówi o "opcjach ustawień". Nie wiem, co to znaczy. W końcu to rozgryzłem. Możesz po prostu dołączyć skomentowaną linię na górze pliku /*jshint esversion: 6 */.

Rozwiązanie

 28
Author: Josh Pittman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-10 11:56:28

Otrzymałem to samo ostrzeżenie podczas używania deklaracji eksportowej. Używam kodu VS i stosuję podobne podejście do rozwiązania Wenlong Jiang.

  1. Ustawienia Użytkownika
  2. jshint config
  3. "jshint.options": {} (edytuj)
  4. Użyj podwójnych cudzysłowów przy określaniu "esversion"

    Lub skopiuj ten fragment do ustawień Użytkownika:

    "jshint.options": {
      "esversion": 6,
    }
    

Tworzenie pliku .jshintrc nie jest konieczne, jeśli chcesz skonfigurować globalne ustawienia jshint dla Twojego edytora

 25
Author: Nicholas Gentile,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-24 09:24:20

Możesz określić esversion:6 wewnątrz obiektu jshint options. Proszę zobaczyć zdjęcie. Używam wtyczki grunt-contrib-jshint.

Tutaj wpisz opis obrazka

 14
Author: Wenlong Jiang,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-07 19:57:59

Jeśli używasz VSCode:

  • przejdź do -> ustawienia (cmd + ,)
  • wpisz jshint.options w pasku wyszukiwania
  • najedź na nią i kliknij ikonę ołówka
  • jest teraz dołączony po prawej stronie.
  • dodaj "esversion": 6 do obiektu options.

Lub po prostu dodaj to do ustawień użytkownika:

"jshint.options": {
    "esversion": 6
}
 11
Author: Phil,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-02 16:21:57

Kiedy zaczynasz używać ECMAScript 6 ten błąd wyrzucany przez twoje IDE.

Dostępne są dwie opcje:

Jeśli masz tylko jeden plik i chcesz użyć es6, po prostu dodaj poniższą linię u góry pliku.

/*jshint esversion: 6 */

Lub jeśli masz numer pliku js lub używasz dowolnego frameworka (np. NodeJS express), możesz utworzyć nowy plik o nazwie .jshintrc w katalogu głównym i dodać kod poniżej:

{
    "esversion": 6
}

Jeśli chcesz użyć wersji es6 do każdy projekt można skonfigurować IDE.

 1
Author: Prashant Barve,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-07 08:16:52

Utwórz plik o nazwie, powiedzmy jshint_opts z tą zawartością: { "esversion": 6 }

Następnie wywołaj jshint z czymś takim jak ta linia poleceń:

Jshint --config jshint_opts lib/*.js

 0
Author: Alan Wendt,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-07 21:40:47

If using Sublime Text 3:

  • Przejdź do -> Ustawienia
  • Pod Preferencjami.sublime-settings-User add "esversion": 6
 0
Author: London804,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-03 20:58:42

Jeśli korzystasz z Webstorm i nie masz własnego pliku konfiguracyjnego, włącz EcmaScript.next w opcjach in

Settings / Languages & Framework | JavaScript / Code Quality Tools | JSHint

Zobacz to pytanie Jak-rozwiązać-te-błędy-JSHINT-ES6

 0
Author: Sudhanshu Gaur,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-29 13:38:14