fix(43215): disallow using never as an interface name (#43217)

This commit is contained in:
Oleksandr T 2021-03-30 03:22:41 +03:00 committed by GitHub
parent 57775ed405
commit 6fd676b8ef
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 25 additions and 4 deletions

View file

@ -36566,6 +36566,7 @@ namespace ts {
switch (name.escapedText) {
case "any":
case "unknown":
case "never":
case "number":
case "bigint":
case "boolean":

View file

@ -4,9 +4,11 @@ tests/cases/conformance/interfaces/interfaceDeclarations/interfacesWithPredefine
tests/cases/conformance/interfaces/interfaceDeclarations/interfacesWithPredefinedTypesAsNames.ts(4,11): error TS2427: Interface name cannot be 'boolean'.
tests/cases/conformance/interfaces/interfaceDeclarations/interfacesWithPredefinedTypesAsNames.ts(5,1): error TS2304: Cannot find name 'interface'.
tests/cases/conformance/interfaces/interfaceDeclarations/interfacesWithPredefinedTypesAsNames.ts(5,11): error TS1005: ';' expected.
tests/cases/conformance/interfaces/interfaceDeclarations/interfacesWithPredefinedTypesAsNames.ts(6,11): error TS2427: Interface name cannot be 'unknown'.
tests/cases/conformance/interfaces/interfaceDeclarations/interfacesWithPredefinedTypesAsNames.ts(7,11): error TS2427: Interface name cannot be 'never'.
==== tests/cases/conformance/interfaces/interfaceDeclarations/interfacesWithPredefinedTypesAsNames.ts (6 errors) ====
==== tests/cases/conformance/interfaces/interfaceDeclarations/interfacesWithPredefinedTypesAsNames.ts (8 errors) ====
interface any { }
~~~
!!! error TS2427: Interface name cannot be 'any'.
@ -23,4 +25,10 @@ tests/cases/conformance/interfaces/interfaceDeclarations/interfacesWithPredefine
~~~~~~~~~
!!! error TS2304: Cannot find name 'interface'.
~~~~
!!! error TS1005: ';' expected.
!!! error TS1005: ';' expected.
interface unknown {}
~~~~~~~
!!! error TS2427: Interface name cannot be 'unknown'.
interface never {}
~~~~~
!!! error TS2427: Interface name cannot be 'never'.

View file

@ -3,7 +3,9 @@ interface any { }
interface number { }
interface string { }
interface boolean { }
interface void {}
interface void {}
interface unknown {}
interface never {}
//// [interfacesWithPredefinedTypesAsNames.js]
interface;

View file

@ -12,3 +12,9 @@ interface boolean { }
>boolean : Symbol(boolean, Decl(interfacesWithPredefinedTypesAsNames.ts, 2, 20))
interface void {}
interface unknown {}
>unknown : Symbol(unknown, Decl(interfacesWithPredefinedTypesAsNames.ts, 4, 17))
interface never {}
>never : Symbol(never, Decl(interfacesWithPredefinedTypesAsNames.ts, 5, 20))

View file

@ -8,3 +8,5 @@ interface void {}
>void {} : undefined
>{} : {}
interface unknown {}
interface never {}

View file

@ -2,4 +2,6 @@ interface any { }
interface number { }
interface string { }
interface boolean { }
interface void {}
interface void {}
interface unknown {}
interface never {}