Skip to content
← Back to rules

typescript/non-nullable-type-assertion-style 제한

💭 This rule requires type information.
An auto-fix is available for this rule.

작동 방식

이 규칙은 비-널(null) 타입에 대해 명시적인 타입 캐스트보다 비-널 주장(!)을 선호합니다.

왜 나쁜가?

값이 반드시 null이나 undefined가 될 수 없다는 것을 알고 있다면, 비-널 주장(!) 또는 타입 주장(as Type) 중 하나를 사용할 수 있습니다. 비-널 주장은 더 간결하며, 값이 실제로 null/undefined가 아니라고 주장하고 있다는 의도를 명확히 전달합니다.

예시

이 규칙에 부적절한 코드 예시:

ts
declare const value: string | null;

// 비-널 주장이 더 명확할 때 타입 주장 사용
const result1 = value as string;

declare const maybe: number | undefined;
const result2 = maybe as number;

// 함수 호출에서의 사용
function takesString(s: string) {
  console.log(s);
}

takesString(value as string);

이 규칙에 적절한 코드 예시:

ts
declare const value: string | null;

// 비-널 주장은 비-널 타입에 적합
const result1 = value!;

declare const maybe: number | undefined;
const result2 = maybe!;

// 함수 호출에서의 사용
function takesString(s: string) {
  console.log(s);
}

takesString(value!);

// 실제 타입 변경이 필요한 경우 타입 주장은 여전히 괜찮음
declare const unknown: unknown;
const str = unknown as string; // 이는 단순히 null을 제거하는 것이 아니라 다른 타입으로 변환함

사용 방법

이 규칙을 구성 파일이나 명령줄 인터페이스에서 활성화하려면 다음을 사용하세요:

json
{
  "rules": {
    "typescript/non-nullable-type-assertion-style": "error"
  }
}
bash
oxlint --type-aware --deny typescript/non-nullable-type-assertion-style

참고 자료