페이지에 특정 요소를 표시할지 여부를 나타내는 오브젝트를 리턴하는 평가자가 50 개 이상의 개별 평가를 포함합니다. 따라서 객체 구성원의 잘못된 사용을 탐지하는 것은 쉽지 않습니다. , showButton 제대로 평가하지 위의 예에서오브젝트 구성원의 유효하지 않은 사용을 감지하십시오.
var simpleExample = {
evaluationSet1: {
foo: true
},
evaluationSet2: {
bar: true
},
showButton: null
};
//Accidental mis-use
simpleExample.showButton = simpleExample.evaluationSet1.bar && simpleExample.evaluationSet2.bar;
및 evaluationSet1.bar가 정의되어 있지 않기 때문에 거짓이 될 것이다 : 여기에 내가 나에게 주소를하는 데 도움이되는 도구를 발견하고자하는 문제의 간단한 예입니다 목적. 올바른 구문은 다음과 같습니다.
simpleExample.showButton = simpleExample.evaluationSet1.foo && simpleExample.evaluationSet2.bar;
이러한 종류의 잘못된 유스 케이스를 감지하는 데 도움이되는 도구가 있습니까? 나는 Jshint와 Jslint를 시도해 봤지만 어느 쪽도 플래그를 붙일 수는 없다.
타이프 라이터 ...... –
아니, 우리의 응용 프로그램에서 그것을 사용할 수 없습니다 우리는 아직 ECMA6 아니에요. –
나는 거의 농담을하고 있었다. ;-) 나는 자바 스크립트의 동적 특성을 감안할 때 강력한 타이핑 없이는 할 수있는 도구가 될 것이라고 생각하지 않는다. 당신이 작성한 것은 기술적으로 유효합니다. evaluationSet1.bar에 bar 속성이 없으면 evaluationSet1.bar를 호출 할 때 무엇이 있는지 알아보십시오! 그것은 정의되지 않았을 수도 있지만 여전히 존재합니다. –