unicorn/prefer-global-this 스타일
작동 방식
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