Jak walczyć z mnóstwem nierozwiązanych zmiennych w WebStorm?
Mam funkcję, która pobiera dane z serwera:
function getData(data){
console.log(data.someVar);
}
WebStorm mówi, że someVar
jest zmienną nierozwiązaną.
Jak mogę pozbyć się takich ostrzeżeń?
Widzę kilka opcji:
- wyłączanie ostrzeżeń w Ustawieniach IDE;
- Dodaj plik źródłowy JSON z polami ( szczegóły);
- użyj składni podobnej do tablicy:
data['some_unres_var']
;
Ponadto WebStorm oferuje mi stworzenie przestrzeni nazw dla "danych" (dodaj adnotację jak /** @namespace data.some_unres_var*/
), Utwórz takie pole, lub zmienić jego nazwę.
6 answers
Użyj JSDoc:
/**
* @param {{some_unres_var:string}} data
*/
function getData(data){
console.log(data.some_unres_var);
}
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
2014-09-16 12:13:14
Jsdoc obiekt. Potem jego członkowie.
/**
* @param data Information about the object.
* @param data.member Information about the object's members.
*/
function getData(data){
console.log(data.member);
}
-
@property
dla zmiennych lokalnych (bez parametrów). - testowane w PyCharm. @Nicholi potwierdza, że działa w WebStorm.
- składnia
{{ member:type }}
zasugerowana przez Andreasa może być w konflikcie z szablonami Django. - dzięki odpowiedzi Jonny ' ego Buchanana cytując @ param wiki.
Aby udokumentować tablice obiektów , użyj []
nawiasów jako jsdoc sugeruje :
/**
* @param data
* @param data.array_member[].foo
*/
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
2020-11-06 00:03:52
Wszystkie inne odpowiedzi są nieprawidłowe W ogólnym przypadku. Co jeśli nie otrzymasz data
jako parametru? Nie masz wtedy JSDoc:
function niceApiCall(parameters) {
const result = await ... // HTTP call to the API here
for (const e of result.entries) {
.. // decorate each entry in the result
}
return result;
}
WebStorm ostrzega, że " wynik.entries " jest zmienną nierozwiązaną (polem).
Ogólnym rozwiązaniem jest dodanie @namespace
deklaracji:
function niceApiCall(parameters) {
/** @namespace result.entries **/
const result = await ... // HTTP call to the API here
for (const e of result.entries) {
.. // decorate each entry in the result
}
return result;
}
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-05-21 05:29:43
Używanie atrapy pliku js z anonimowym wyrażeniem funkcji zwracającym literał json, tak jak napisano w http://devnet.jetbrains.com/message/5366907 , może być rozwiązaniem. Mogę również zasugerować stworzenie fałszywej zmiennej, która będzie zawierać tę wartość json i użyć tej zmiennej jako wartości adnotacji @ param, aby WebStorm wiedział, jaki jest rzeczywisty typ. Like:
var jsontext = {"some_unres_var":"val"};
/** @param {jsontext} data */
function getData(data){
console.log(data.some_unres_var);
}
Zobacz też http://devnet.jetbrains.com/message/5504337#5504337
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
2020-05-16 20:54:00
Użycie destrukcyjne, Luke.
function getData(data){
const {member} = data;
console.log(member);
}
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
2019-08-14 15:13:12
Aby usunąć ostrzeżenia W WebStorm IDE, możesz po prostu odznaczyć opcje inspekcji dla:
- nierozwiązana funkcja Javascript
- Unsolved JavaScript variable
Ps . spowoduje to usunięcie ostrzeżeń na IDE, ale nie sądzę, że jest to najlepszy pomysł, ponieważ stracimy jeden z najlepszych narzędzi w IDE takim jak Webstorm, który może pogorszyć jakość naszego kodu.
Mimo to, jeśli chcesz śledzić w menu: plik > Ustawienia > edytor > inspekcje możemy wyłączyć ostrzeżenia Javascript
Jak na poniższym zdjęciu:
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
2020-06-05 17:07:03