JavaScript

JavaScript

Made by DeepSource

Detected usage of the any type JS-0323

Anti-pattern
Critical

The any type can sometimes leak into your codebase. TypeScript compiler skips the type checking of the any typed variables, so it creates a potential safety hole, and source of bugs in your codebase. We recommend using unknown or never type variable.

In TypeScript, every type is assignable to any. This makes any a top type (also known as a universal supertype) of the type system. The any type is essentially an escape hatch from the type system. As developers, this gives us a ton of freedom: TypeScript lets us perform any operation we want on values of type any without having to perform any checking beforehand. The developers should not assign any typed value to variables and properties, which can be hard to pick up on, especially from the external library; instead, developers can use the never or unknown type variable.

Bad Practice

const age: any = 'seventeen';

const ages: any[] = ['seventeen'];

const ages: Array<any> = ['seventeen'];

function greet(): any {}

function greet(): any[] {}

function greet(): Array<any> {}

function greet(): Array<Array<any>> {}

function greet(param: Array<any>): string {}

function greet(param: Array<any>): Array<any> {}

Recommended

const age: number = 17;

const ages: number[] = [17];

const ages: Array<number> = [17];

function greet(): string {}

function greet(): string[] {}

function greet(): Array<string> {}

function greet(): Array<Array<string>> {}

function greet(param: Array<string>): string {}

function greet(param: Array<string>): Array<string> {}