跳至內容

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>() {}

參考資料

根據 MIT 許可發布。