Skip to content
← Back to rules

unicorn/prefer-global-this 스타일

An auto-fix is available for this rule.

작동 방식

globalThis를 사용하도록 강제하며, 환경에 따라 달라지는 전역 객체 별칭(window, self, 또는 global) 대신 사용합니다. 표준 globalThis를 사용하면 브라우저, 웹 워커, Node.js 및 미래의 자바스크립트 실행 환경 간에 코드의 호환성을 확보할 수 있습니다.

왜 문제인가요?

호환성 – window는 브라우저 메인 스레드에서만 정의되며, self는 웹 워커에서 사용되고, global은 노드 전용입니다. 잘못된 별칭을 선택하면 원래 환경 외부에서 코드를 실행했을 때 런타임 오류가 발생합니다.
명확성 – globalThis는 특정 플랫폼이 아니라 전역 객체 자체를 참조하고 있음을 명확히 전달합니다.

예시

이 규칙에 어긋나는 잘못된 코드 예시:

js
// 브라우저 전용
window.alert("안녕");

// 노드 전용
if (typeof global.Buffer !== "undefined") {
}

// 웹 워커 전용
self.postMessage("완료");

이 규칙을 준수하는 올바른 코드 예시:

js
globalThis.alert("안녕");

if (typeof globalThis.Buffer !== "undefined") {
}

globalThis.postMessage("완료");

사용 방법

이 규칙을 설정 파일 또는 CLI를 통해 활성화하려면 다음을 사용하세요:

json
{
  "rules": {
    "unicorn/prefer-global-this": "error"
  }
}
bash
oxlint --deny unicorn/prefer-global-this

참고 자료