Skip to content

Commit 541920e

Browse files
authored
Merge pull request #18014 from Microsoft/allow-bang+dotdotdot-as-start-of-type
Allow bang+dotdotdot as start of type
2 parents 7a4c3da + 377ac06 commit 541920e

File tree

4 files changed

+37
-1
lines changed

4 files changed

+37
-1
lines changed

src/compiler/parser.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2724,6 +2724,8 @@ namespace ts {
27242724
case SyntaxKind.ObjectKeyword:
27252725
case SyntaxKind.AsteriskToken:
27262726
case SyntaxKind.QuestionToken:
2727+
case SyntaxKind.ExclamationToken:
2728+
case SyntaxKind.DotDotDotToken:
27272729
return true;
27282730
case SyntaxKind.MinusToken:
27292731
return lookAhead(nextTokenIsNumericLiteral);

tests/baselines/reference/jsdocDisallowedInTypescript.errors.txt

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,13 @@ tests/cases/conformance/jsdoc/jsdocDisallowedInTypescript.ts(17,11): error TS802
1212
tests/cases/conformance/jsdoc/jsdocDisallowedInTypescript.ts(18,17): error TS8020: JSDoc types can only be used inside documentation comments.
1313
tests/cases/conformance/jsdoc/jsdocDisallowedInTypescript.ts(19,5): error TS2322: Type 'undefined' is not assignable to type 'number | null'.
1414
tests/cases/conformance/jsdoc/jsdocDisallowedInTypescript.ts(19,17): error TS8020: JSDoc types can only be used inside documentation comments.
15+
tests/cases/conformance/jsdoc/jsdocDisallowedInTypescript.ts(21,16): error TS8020: JSDoc types can only be used inside documentation comments.
16+
tests/cases/conformance/jsdoc/jsdocDisallowedInTypescript.ts(22,16): error TS8020: JSDoc types can only be used inside documentation comments.
17+
tests/cases/conformance/jsdoc/jsdocDisallowedInTypescript.ts(23,17): error TS8020: JSDoc types can only be used inside documentation comments.
18+
tests/cases/conformance/jsdoc/jsdocDisallowedInTypescript.ts(24,17): error TS8020: JSDoc types can only be used inside documentation comments.
1519

1620

17-
==== tests/cases/conformance/jsdoc/jsdocDisallowedInTypescript.ts (14 errors) ====
21+
==== tests/cases/conformance/jsdoc/jsdocDisallowedInTypescript.ts (18 errors) ====
1822
// grammar error from checker
1923
var ara: Array.<number> = [1,2,3];
2024
~
@@ -62,4 +66,18 @@ tests/cases/conformance/jsdoc/jsdocDisallowedInTypescript.ts(19,17): error TS802
6266
!!! error TS2322: Type 'undefined' is not assignable to type 'number | null'.
6367
~~~~~~~
6468
!!! error TS8020: JSDoc types can only be used inside documentation comments.
69+
70+
var nns: Array<?number>;
71+
~~~~~~~
72+
!!! error TS8020: JSDoc types can only be used inside documentation comments.
73+
var dns: Array<!number>;
74+
~~~~~~~
75+
!!! error TS8020: JSDoc types can only be used inside documentation comments.
76+
var anys: Array<*>;
77+
~
78+
!!! error TS8020: JSDoc types can only be used inside documentation comments.
79+
var vars: Array<...number>;
80+
~~~~~~~~~
81+
!!! error TS8020: JSDoc types can only be used inside documentation comments.
82+
6583

tests/baselines/reference/jsdocDisallowedInTypescript.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,12 @@ var variadic: ...boolean = [true, false, true];
1818
var most: !string = 'definite';
1919
var postfixdef: number! = 101;
2020
var postfixopt: number? = undefined;
21+
22+
var nns: Array<?number>;
23+
var dns: Array<!number>;
24+
var anys: Array<*>;
25+
var vars: Array<...number>;
26+
2127

2228

2329
//// [jsdocDisallowedInTypescript.js]
@@ -40,3 +46,7 @@ var variadic = [true, false, true];
4046
var most = 'definite';
4147
var postfixdef = 101;
4248
var postfixopt = undefined;
49+
var nns;
50+
var dns;
51+
var anys;
52+
var vars;

tests/cases/conformance/jsdoc/jsdocDisallowedInTypescript.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,9 @@ var variadic: ...boolean = [true, false, true];
1919
var most: !string = 'definite';
2020
var postfixdef: number! = 101;
2121
var postfixopt: number? = undefined;
22+
23+
var nns: Array<?number>;
24+
var dns: Array<!number>;
25+
var anys: Array<*>;
26+
var vars: Array<...number>;
27+

0 commit comments

Comments
 (0)