J'apprécie vraiment la réflexion et les efforts qui ont été consacrés à ce guide de style.
Je rencontre des problèmes avec jshint et certains des exemples utilisés dans le guide. Par exemple:
function getCategories() {
return $http.get(env + 'api/feeds/', {cache: true})
.then(getCategoriesComplete)
.catch(getCategoriesFailed);
function getCategoriesComplete(response) {
return response;
}
function getCategoriesFailed(error) {
console.log(error.data);
}
}
Lorsque mon processus grunt exécute jshint, j'obtiens :
Une solution de contournement simple consiste à utiliser la notation entre crochets (ew) pour catch
, mais personnellement, je trouve cela peu recommandable. J'ai essayé de fournir les paramètres .jshintrc
recommandés mais sans succès. Cela pourrait nécessiter une petite clarification, mais cela pourrait également être une erreur de l'utilisateur de ma part.
Merci!
je ne vois pas cela ... l'avez-vous vérifié par rapport aux règles jshintrc que j'ai fournies dans mes dépôts?
J'ai essayé d'utiliser les paramètres JSHint fournis dans la section JSHint , qui semblent être les mêmes dans le projet ng-demos/modular, mais j'ai toujours eu la même erreur. Si ce sont les mêmes paramètres que vous utilisez, je ne sais pas pourquoi j'obtiens cette erreur et vous ne l'êtes pas.
Après avoir regardé de plus près les options JSHint , le paramètre es5 défini sur true
corrigé pour moi.
De la doc :
This option enables syntax first defined in the ECMAScript 5.1 specification. This includes
allowing reserved keywords as object properties.
Si vous pensez que c'est quelque chose qui ajoute de la valeur, je peux soumettre un PR, mais j'hésite un peu car vous ne rencontrez pas le même comportement. Il y a tellement de bonnes idées dans ce guide de style. J'en ai profité énormément. Alors merci d'avoir rendu cela public. Très appréciée.
Oui, c'est étrange... Je ne l'ai pas examiné en profondeur, mais je n'ai aucun problème lorsque je copie votre code exact dans mon éditeur et que je ne définis pas du tout le paramètre es5. Gardons cela ouvert pour l'instant et voyons si d'autres l'obtiennent
fermeture car aucune autre personne ne voit cela
Je viens de rencontrer le même problème.
Mon code :
function (credentials) {
return DataService.login(credentials)
.then(loginSuccess)
.catch(loginError);
function loginSuccess(response) {}
function loginError(response) {}
}
Ma configuration grunt
:
jshint: {
src: [
'<%= app_files.js %>'
],
options: {
curly: true,
immed: true,
newcap: true,
noarg: true,
sub: true,
boss: true,
eqnull: true,
debug: true
},
globals: {}
},
Version du plugin jshint
:
{
"name": "grunt-contrib-jshint",
"version": "0.4.3",
...
}
Manquez-vous « use strict ; » ?
@wardbell non, 'use strict;'
ne manque pas.
Bizarre. Je ne comprends pas. Ancienne version de jshint ?
Vous pouvez regarder ici : http://jslinterrors.com/expected-an-identifier-and-instead-saw-aa-reserved-word/
Il suggère les directives /*jshint es5: true */
ou /*jshint -W024 */
.
Mais comme John, je n'ai jamais eu à faire quoi que ce soit de spécial.
Le réglage es5: true
résolu mon problème. Mille mercis!
Concernant les versions. J'utilise grunt-contrib-jshint 0.4.3
, qui utilise jshint 1.1.0
.
@johnpapa Je sais qu'il s'agit d'un problème clos, mais j'ai remarqué que le regroupement ASP.NET MVC posait également des problèmes avec _.catch_ lançant une erreur et ne menaçait pas le code.
À quoi ressemble le paquet résultant :
/* Minification failed. Returning unminified contents.
(514,18-23): run-time error JS1137: 'catch' is a new reserved word and should not be used as an identifier: catch
...
*/
(all the code here without being minified)
Une solution possible serait de changer les styles Y035 et Y060 pour utiliser les promesses régulières décrites sur les docs officiels d' AngularJS :
$http(req).success(function(){...}).error(function(){...});
Commentaire le plus utile
Bizarre. Je ne comprends pas. Ancienne version de jshint ?
Vous pouvez regarder ici : http://jslinterrors.com/expected-an-identifier-and-instead-saw-aa-reserved-word/
Il suggère les directives
/*jshint es5: true */
ou/*jshint -W024 */
.Mais comme John, je n'ai jamais eu à faire quoi que ce soit de spécial.