Permalink
Branch: master
Find file Copy path
132c078 Jan 19, 2019
1 contributor

Users who have contributed to this file

102 lines (72 sloc) 1.7 KB

Disallow usage of the any type (no-explicit-any)

Using the any type defeats the purpose of using TypeScript. When any is used, all compiler type checks around that value are ignored.

Rule Details

This rule goes doesn't allow any types to be defined. It aims to keep TypeScript maximally useful. TypeScript has a compiler flag for --noImplicitAny that will prevent an any type from being implied by the compiler, but doesn't prevent any from being explicitly used.

The following patterns are considered warnings:

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

The following patterns are not warnings:

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

When Not To Use It

If an unknown type or a library without typings is used and you want to be able to specify any.

Further Reading

Compatibility