2016-08-09 1 views
1

jQuery와 통합되었을 때 잘 작동하는 간단한 CoffeeScript 코드가 있습니다. 도구를 확인 그러나 coffee-lint 코드는커피 보푸라기 점검 도구로 암시 적 중괄호를 사용할 수 없으므로 오류를 수정하는 방법은 무엇입니까?

coffeelint file.coffee

암시 중괄호가 금지되어 다음과 같은 오류를 보여줍니다.

내 코드에서 오류가 발생한 원인

$ -> 
    $("#selector").dialog 
    modal: true 

입니까?

답변

2

최소한의 변경이 필요합니다. 함수 호출에 ()을 추가하는 것이 좋지만이 규칙은 해당 함수에 대해서는 신경 쓰지 않습니다.

$ -> 
    $("#selector").dialog { 
    modal: true 
    } 

modal: true은 개체로 암시됩니다. 이 규칙을 사용하도록 설정하는 것이 좋은 이유를 설명하기 위해 매개 변수를 허용하는 매우 유사한 코드가 있다고 가정 해 보겠습니다.

makeDialog = (foo) -> 
    $("#selector").dialog 
    modal: true, 
    foo: foo, 

이 코드는 정상적으로 보이는 것처럼 올바르게 컴파일됩니다. 그러나 어느 시점에서 foo: foo을 단순화 할 수 있습니다.

makeDialog = (foo) -> 
    $("#selector").dialog 
    modal: true, 
    foo, 

이제 코드가 손상되었습니다. CoffeeScript는 modal: truedialog의 첫 번째 매개 변수 인 묵시적 개체의 속성이라고 정확하게 추측했지만 foo이 해당 개체의 두 번째 속성이거나 해당 기능의 두 번째 매개 변수인지 여부를 알 수 없습니다. 이 결과는 다음과 같이 컴파일됩니다.

return $("#selector").dialog({ modal: true }, foo); 
0

coffeelint config file이 있습니까? 예인 경우 no_implicit_braces policy이 변경되지 않았는지 확인합니다 (기본값은 무시 함).

+0

감사합니다.하지만 coffeelint.json을 바꾸고 싶지 않습니다. 기본 구성을 유지하고 문제를 해결하고 싶습니다. –

+0

기본 구성은 암시 중괄호에 대한 오류 또는 경고를 발생시키지 않습니다. 이것이 내가 coffeelint.json 파일을 이미 가지고 있는지 묻는 이유이며, 그렇다면 no_implicit_braces 규칙이 오류로 설정되지 않았는지 확인하십시오. – Cyril