From 536b80fba7b96fe7c09ea3d4e9fa0b69ee70344d Mon Sep 17 00:00:00 2001 From: Thomas den Hollander Date: Thu, 3 Jan 2019 15:39:59 +0100 Subject: [PATCH] Add unknown as simple type to array-type (#4433) --- src/rules/arrayTypeRule.ts | 1 + test/rules/array-type/array-simple/test.ts.fix | 4 ++++ test/rules/array-type/array-simple/test.ts.lint | 5 +++++ test/rules/array-type/array/test.ts.fix | 4 ++++ test/rules/array-type/array/test.ts.lint | 5 +++++ test/rules/array-type/generic/test.ts.fix | 4 ++++ test/rules/array-type/generic/test.ts.lint | 5 +++++ 7 files changed, 28 insertions(+) diff --git a/src/rules/arrayTypeRule.ts b/src/rules/arrayTypeRule.ts index 92804c9fa15..dcc7dfa06f6 100644 --- a/src/rules/arrayTypeRule.ts +++ b/src/rules/arrayTypeRule.ts @@ -162,6 +162,7 @@ function isSimpleType(nodeType: ts.TypeNode): boolean { case ts.SyntaxKind.VoidKeyword: case ts.SyntaxKind.NeverKeyword: case ts.SyntaxKind.ThisType: + case ts.SyntaxKind.UnknownKeyword: return true; case ts.SyntaxKind.TypeReference: // TypeReferences must be non-generic or be another Array with a simple type diff --git a/test/rules/array-type/array-simple/test.ts.fix b/test/rules/array-type/array-simple/test.ts.fix index 38b9dedbf06..8254c86f20f 100644 --- a/test/rules/array-type/array-simple/test.ts.fix +++ b/test/rules/array-type/array-simple/test.ts.fix @@ -54,3 +54,7 @@ interface FooInterface { '.bar': {baz: string[];}; } +// Test an unknown Array +let t: unknown[] = []; +let u: unknown[] = []; + diff --git a/test/rules/array-type/array-simple/test.ts.lint b/test/rules/array-type/array-simple/test.ts.lint index 2f9785aff32..a86ecbd3f8e 100644 --- a/test/rules/array-type/array-simple/test.ts.lint +++ b/test/rules/array-type/array-simple/test.ts.lint @@ -70,4 +70,9 @@ interface FooInterface { '.bar': {baz: string[];}; } +// Test an unknown Array +let t: unknown[] = []; +let u: Array = []; + ~~~~~~~~~~~~~~ [0] + [0]: Array type using 'Array' is forbidden for simple types. Use 'T[]' instead. diff --git a/test/rules/array-type/array/test.ts.fix b/test/rules/array-type/array/test.ts.fix index fc923879861..369cff0bfc9 100644 --- a/test/rules/array-type/array/test.ts.fix +++ b/test/rules/array-type/array/test.ts.fix @@ -43,3 +43,7 @@ interface FooInterface { '.bar': {baz: string[];}; } +// Test an unknown Array +let t: unknown[] = []; +let u: unknown[] = []; + diff --git a/test/rules/array-type/array/test.ts.lint b/test/rules/array-type/array/test.ts.lint index 10c96dae466..a4c73827c50 100644 --- a/test/rules/array-type/array/test.ts.lint +++ b/test/rules/array-type/array/test.ts.lint @@ -55,4 +55,9 @@ interface FooInterface { '.bar': {baz: string[];}; } +// Test an unknown Array +let t: unknown[] = []; +let u: Array = []; + ~~~~~~~~~~~~~~ [0] + [0]: Array type using 'Array' is forbidden. Use 'T[]' instead. diff --git a/test/rules/array-type/generic/test.ts.fix b/test/rules/array-type/generic/test.ts.fix index 8a11a2ed8be..869b87b87da 100644 --- a/test/rules/array-type/generic/test.ts.fix +++ b/test/rules/array-type/generic/test.ts.fix @@ -43,3 +43,7 @@ interface FooInterface { '.bar': {baz: Array;}; } +// Test an unknown Array +let t: Array = []; +let u: Array = []; + diff --git a/test/rules/array-type/generic/test.ts.lint b/test/rules/array-type/generic/test.ts.lint index 1ef325800e5..b54ad4e826e 100644 --- a/test/rules/array-type/generic/test.ts.lint +++ b/test/rules/array-type/generic/test.ts.lint @@ -55,4 +55,9 @@ interface FooInterface { ~~~~~~~~ [0] } +// Test an unknown Array +let t: unknown[] = []; + ~~~~~~~~~ [0] +let u: Array = []; + [0]: Array type using 'T[]' is forbidden. Use 'Array' instead.