jshint는 Angular를 이해합니까?
jshint는 Angular style 가이드(John Papa 또는 Todd Motor)가 권장하는 대로 Angular module(또는 지시 또는 팩토리)을 정의할 때 오류를 발생시킵니다.예를 들어, 다음과 같은 컨트롤러의 경우:
(function () {
'use strict';
angular
.module('myApp')
.controller('myAppCtrl', theController);
function theController() {...}
})();
... jshint는 다음 오류를 발생시킵니다.
'theController' was used before it was defined.
이런 오류에도 불구하고 각진 앱은 완벽하게 작동합니다.그런데 왜 jshint 시위가...
제가 무엇을 빠뜨리고 있나요?jshint가 각도 코드의 품질을 잘 평가하는 사람인지(일반 패키지에 발전기 각도로 포함되어 있음에도 불구하고) 아니면 제가 뭔가 잘못하고 있는지(앱이 작동하지만) 저인지 궁금합니다.
미리 감사드립니다!
사용.latedef
속성을 지정하고 설정합니다.false
. 이를 통해 기능을 상승시킬 수 있으며, IMO는 괜찮습니다.하지만 아직도 대표팀을 소집했다는 보고가 있어요 IMO가 나쁘죠
음, 우선 "glob 변수"에 각도를 포함합니다. 예를 들어:
"globals": { // Global variables.
"jasmine": true,
"angular": true,
"browser": true,
"element": true,
"by":true,
"io":true,
"_":false,
"$":false
}
그런 다음 함수 정의를 각도에서 참조하기 전에 이동합니다.
(function () {
'use strict';
function theController() {...}
angular
.module('myApp')
.controller('myAppCtrl', theController);
})();
따라서 모든 링터를 행복하게 만드는 또 다른 방법은 함수를 유지할 변수를 먼저 선언하고, 이를 매개 변수로 사용한 다음 정의하는 것입니다.
하지만 개인적으로 저는 이곳의 흐름을 사랑하는지 잘 모르겠습니다.잭의 대답이 더 마음에 드는 것 같아요. 하지만 아빠가 선호하는 스타일에 좀 더 가깝죠. 그의 스타일 가이드에 동의하지 않으신다면요.사실 저는 정말로 함수를 사용한 후에 나타나기를 원한다면, 왜 이것이 그가 권장하는 것이 아닌지 잘 모르겠습니다.그렇지 않으면 당신은 그의 스타일을 사용할 수 없습니다.latedef
JSint -- 또는 JSlint에서 true로 설정합니다.
(function () {
'use strict';
var theController;
angular
.module('myApp')
.controller('myAppCtrl', theController);
theController = function () {
return "so jslint doesn't complain about empty blocks";
};
}());
당신의 코드는 작동하겠지만, jshint는 당신이 매우 엄격한 방식으로 코드를 만들도록 시도할 것입니다.적어도 사용하기 전에 자신의 기능을 정의하는 것이 "좋은 관행"입니다.위의 댓글에서 언급했듯이 오래된 자바스크립트 엔진은 위에서 아래로 실행되는 것 같습니다. (그러나 확실히 기억할 수 없고 테스트할 수도 없습니다.) 그래서 가능한 한 광범위한 지원을 원하는 경우 jshint를 듣고 싶을 것입니다.
여기서 주목할 만한 점은 만약 당신이 다음과 같이var
함수를 정의하기 위해 키워드를 지정하면 오류가 발생합니다. 예를 들어 가장 잘 설명됩니다.
효과가 있습니다(http://jsfiddle.net/ryanwheale/kr8L825p/) .
(function() {
try {
foo();
} catch(ex) {
alert("ahhhhh, what's going on?!?!?\n\n" + ex.message);
}
function foo() {
alert("I was hoisted to the top of this scope before execution :)");
}
})();
... 하지만 그렇지 않습니다 (http://jsfiddle.net/ryanwheale/kr8L825p/4/)
(function() {
try {
foo();
} catch(ex) {
alert("ahhhhh, what's going on?!?!?\n\n" + ex.message);
}
var foo = function() {
alert("I was hoisted to the top of this scope before execution :)");
}
})();
언급URL : https://stackoverflow.com/questions/26288367/does-jshint-understand-angular
'source' 카테고리의 다른 글
도커 컨테이너의 파일 시스템 탐색 (0) | 2023.09.28 |
---|---|
mysql 명령줄에 .my.cnf 제공 (0) | 2023.09.28 |
Pandas DataFrame 개체에서 인덱스 재정의 (0) | 2023.09.28 |
오라클용 "phpmyadmin"이 있습니까? (0) | 2023.09.28 |
복합재 고유 구속조건 후속화 (0) | 2023.09.23 |