Avoid unnecessary constraints on generic types

Cette page n'est pas encore disponible en français, sa traduction est en cours.
Si vous avez des questions ou des retours sur notre projet de traduction actuel, n'hésitez pas à nous contacter.

Metadata

ID: typescript-best-practices/no-unnecessary-type-constraint

Language: TypeScript

Severity: Notice

Category: Best Practices

Description

It is redundant to extend from any or unknown.

Non-Compliant Code Examples

function data<T extends any>() {}
function data<T extends any, U>() {}
function data<T, U extends any>() {}
function data<T extends any, U extends T>() {}
const data = <T extends any>() => {};
const data = <T extends any>() => {};
const data = <T extends any>() => {};
const data = <T extends any,>() => {};
const data = <T extends any, >() => {};
const data = <T extends any ,>() => {};
const data = <T extends any , >() => {};
const data = <T extends any = unknown>() => {};
const data = <T extends any, U extends any>() => {};
function data<T extends unknown>() {}
const data = <T extends any>() => {};
const data = <T extends unknown>() => {};
class Data<T extends unknown> {}
const Data = class<T extends unknown> {};

class Data {
  member<T extends unknown>() {}
}

const Data = class {
  member<T extends unknown>() {}
};

interface Data<T extends unknown> {}
type Data<T extends unknown> = {};

Compliant Code Examples

function data() {}
function data<T>() {}
function data<T, U>() {}
function data<T extends number>() {}
function data<T extends number | string>() {}
function data<T extends any | number>() {}

type TODO = any;
function data<T extends TODO>() {}

const data = () => {};
const data = <T>() => {};
const data = <T, U>() => {};
const data = <T extends number>() => {};
const data = <T extends number | string>() => {};
https://static.datadoghq.com/static/images/logos/github_avatar.svg https://static.datadoghq.com/static/images/logos/vscode_avatar.svg jetbrains

Seamless integrations. Try Datadog Code Analysis