source

jshint는 Angular를 이해합니까?

manycodes 2023. 9. 28. 08:35
반응형

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);
})();

따라서 모든 링터를 행복하게 만드는 또 다른 방법은 함수를 유지할 변수를 먼저 선언하고, 이를 매개 변수로 사용한 다음 정의하는 것입니다.

하지만 개인적으로 저는 이곳의 흐름을 사랑하는지 잘 모르겠습니다.잭의 대답이 더 마음에 드는 것 같아요. 하지만 아빠가 선호하는 스타일에 좀 더 가깝죠. 그의 스타일 가이드에 동의하지 않으신다면요.사실 저는 정말로 함수를 사용한 후에 나타나기를 원한다면, 왜 이것이 그가 권장하는 것이 아닌지 잘 모르겠습니다.그렇지 않으면 당신은 그의 스타일을 사용할 수 없습니다.latedefJSint -- 또는 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

반응형