typescript/no-unnecessary-type-constraint 의심스러움
작동 방식
제네릭 타입에 대한 불필요한 제약 조건을 금지합니다.
왜 문제가 될까?
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