Skip to content
← Back to rules

eslint/prefer-spread 스타일

작동 방식

변수 인수 함수 호출 시 apply() 대신 전개 연산자(...) 사용을 요구합니다.

왜 좋지 않은가?

ES2015 이전에는 변수 인수 함수를 호출하기 위해 Function.prototype.apply()를 사용해야 했습니다.

javascript
var args = [1, 2, 3, 4];
Math.max.apply(Math, args);

ES2015 이후부터는 전개 구문을 사용하여 변수 인수 함수를 호출할 수 있습니다.

javascript
var args = [1, 2, 3, 4];
Math.max(...args);

예시

이 규칙에 대해 잘못된 코드 예시:

javascript
foo.apply(undefined, args);
foo.apply(null, args);
obj.foo.apply(obj, args);

이 규칙에 대해 올바른 코드 예시:

javascript
// 전개 구문 사용
foo(...args);
obj.foo(...args);

// `this` 바인딩이 다릅니다.
foo.apply(obj, args);
obj.foo.apply(null, args);
obj.foo.apply(otherObj, args);

// 인수 목록이 변수 인수가 아닙니다.
// 이러한 경우는 `no-useless-call` 규칙에서 경고됩니다.
foo.apply(undefined, [1, 2, 3]);
foo.apply(null, [1, 2, 3]);
obj.foo.apply(obj, [1, 2, 3]);

사용 방법

설정 파일 또는 명령줄 인터페이스를 통해 이 규칙을 활성화하려면 다음을 사용하세요:

json
{
  "rules": {
    "prefer-spread": "error"
  }
}
bash
oxlint --deny prefer-spread

참고 자료