Skip to content
← Back to rules

typescript/no-unnecessary-type-constraint 의심스러움

An auto-fix is available for this rule.

작동 방식

제네릭 타입에 대한 불필요한 제약 조건을 금지합니다.

왜 문제가 될까?

TypeScript에서 제네릭 타입 매개변수(<T>)는 extends 키워드를 사용하여 "제약"을 적용할 수 있습니다. extends가 제공되지 않으면, 타입 매개변수는 기본적으로 unknown으로 제약됩니다. 따라서 any 또는 unknown을 확장하는 것은 중복된 작업입니다.

예시

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

typescript
interface FooAny<T extends any> {}
interface FooUnknown<T extends unknown> {}

type BarAny<T extends any> = {};
type BarUnknown<T extends unknown> = {};

const QuuxAny = <T extends any>() => {};

function QuuzAny<T extends any>() {}
typescript
class BazAny<T extends any> {
  quxAny<U extends any>() {}
}

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

typescript
interface Foo<T> {}

type Bar<T> = {};

const Quux = <T>() => {};

function Quuz<T>() {}
typescript
class Baz<T> {
  qux<U>() {}
}

사용 방법

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

json
{
  "rules": {
    "typescript/no-unnecessary-type-constraint": "error"
  }
}
bash
oxlint --deny typescript/no-unnecessary-type-constraint

참고 자료