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> = {};
class BazAny<T extends any> {
quxAny<U extends any>() {}
}
const QuuxAny = <T extends any>() => {};
function QuuzAny<T extends any>() {}