Require consistently using either T[] or Array<T> for arrays 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 .
TRY THIS RULE ID: typescript-code-style/array-type
Language: TypeScript
Severity: Notice
Category: Code Style
Description Chose between: T[]
and Array<T>
. These types are equivalent and it should be consistent across the code base.
Non-Compliant Code Examples // Base cases from https://github.com/typescript-eslint/typescript-eslint/issues/2323#issuecomment-663977655
let a : Array < number > = [];
let a : Array < string | number > = [];
let a : ReadonlyArray < number > = [];
let a : ReadonlyArray < string | number > = [];
let a : Array < number > = [];
let a : Array < string | number > = [];
let a : ReadonlyArray < number > = [];
let a : ReadonlyArray < string | number > = [];
let a : Array < number > = [];
let a : Array < string | number > = [];
let a : ReadonlyArray < number > = [];
let a : Array < number > = [];
let a : Array < string | number > = [];
let a : Array < number > = [];
let a : Array < string | number > = [];
let a : Array < number > = [];
let a : Array < string | number > = [];
let a : ReadonlyArray < number > = [];
let a : ReadonlyArray < string | number > = [];
let a : Array < number > = [];
let a : Array < string | number > = [];
let a : ReadonlyArray < number > = [];
let a : Array < number > = [];
let a : Array < string | number > = [];
let a : ReadonlyArray < number > = [];
let a : ReadonlyArray < string | number > = [];
let a : Array < number > = [];
let a : Array < string | number > = [];
let a : ReadonlyArray < number > = [];
let a : Array < number > = [];
let a : Array < string | number > = [];
let a : ReadonlyArray < string | number > = [];
let a : ReadonlyArray < bigint > = [];
// End of base cases
type Arr < T > = Array < T >;
let a : Array < { foo : Array < Bar > } > = [];
let a : Array < { foo : Foo | Array < Bar > } > = [];
let ya = [[ 1 , '2' ]] as Array < [ number , string ] > ;
// Ignore user-defined aliases
let yyyy : Arr < Array < Array < Arr < string > >>> = [[[[ '2' ]]]];
interface ArrayClass < T > {
foo : T [];
bar : T [];
baz : Arr < T >;
xyz : this [];
}
function barFunction ( bar : Array < ArrayClass < String > > ) {
return bar . map ( e => e . bar );
}
let barVar : Array < ( c : number ) => number > = [];
type barUnion = Array < string | number | boolean >;
type barIntersection = Array < string & number >;
let w : Array < fooName.BazType < string > > = [[ 'baz' ]];
type Unwrap < T > = T extends Array < infer E > ? E : T ;
Compliant Code Examples // Base cases from https://github.com/typescript-eslint/typescript-eslint/issues/2323#issuecomment-663977655
let a : number [] = [];
let a : ( string | number )[] = [];
let a : readonly number [] = [];
let a : readonly ( string | number )[] = [];
let a : number [] = [];
let a : ( string | number )[] = [];
let a : readonly number [] = [];
let a : readonly ( string | number )[] = [];
let a : number [] = [];
let a : ( string | number )[] = [];
let a : readonly number [] = [];
let a : number [] = [];
let a : ( string | number )[] = [];
let a : number [] = [];
let a : readonly number [] = [];
let a : number [] = [];
let a : readonly number [] = [];
let a : readonly ( string | number )[] = [];
let a : number [] = [];
let a : readonly number [] = [];
let a : readonly number [] = [];
let a : readonly ( string | number )[] = [];
let a : readonly bigint [] = [];
// End of base cases
let a = new Array ();
let a : { foo : Bar [] }[] = [];
let yy : number [][] = [[ 4 , 5 ], [ 6 ]];
function bazFunction ( baz : Arr < ArrayClass < String > > ) { return baz . map ( e => e . baz ); }
namespace fooName { type BarType = { bar : string }; type BazType < T > = Arr < T >; }
interface FooInterface { '.bar' : { baz : string [] }; }
let yy : number [][] = [[ 4 , 5 ], [ 6 ]];
let ya = [[ 1 , '2' ]] as [ number , string ][];
function barFunction ( bar : ArrayClass < String >[]) { return bar . map ( e => e . bar ); }
function bazFunction ( baz : Arr < ArrayClass < String > > ) { return baz . map ( e => e . baz ); }
let barVar : (( c : number ) => number )[];
type barUnion = ( string | number | boolean )[];
type barIntersection = ( string & number )[];
interface FooInterface { '.bar' : { baz : string [] }; }
type Unwrap < T > = T extends ( infer E )[] ? E : T ;
function bazFunction ( baz : Arr < ArrayClass < String > > ) { return baz . map ( e => e . baz ); }
Seamless integrations. Try Datadog Code Analysis