@schematics/angular 9.0.0-rc.6 → 9.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,20 +1,20 @@
1
1
  /*! *****************************************************************************
2
- Copyright (c) Microsoft Corporation. All rights reserved.
2
+ Copyright (c) Microsoft Corporation. All rights reserved.
3
3
  Licensed under the Apache License, Version 2.0 (the "License"); you may not use
4
4
  this file except in compliance with the License. You may obtain a copy of the
5
- License at http://www.apache.org/licenses/LICENSE-2.0
6
-
5
+ License at http://www.apache.org/licenses/LICENSE-2.0
6
+
7
7
  THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
8
8
  KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
9
- WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
10
- MERCHANTABLITY OR NON-INFRINGEMENT.
11
-
9
+ WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
10
+ MERCHANTABLITY OR NON-INFRINGEMENT.
11
+
12
12
  See the Apache Version 2.0 License for specific language governing permissions
13
13
  and limitations under the License.
14
14
  ***************************************************************************** */
15
15
 
16
16
  declare namespace ts {
17
- const versionMajorMinor = "3.6";
17
+ const versionMajorMinor = "3.7";
18
18
  /** The version of the TypeScript compiler release */
19
19
  const version: string;
20
20
  }
@@ -73,7 +73,7 @@ declare namespace ts {
73
73
  end: number;
74
74
  }
75
75
  export type JSDocSyntaxKind = SyntaxKind.EndOfFileToken | SyntaxKind.WhitespaceTrivia | SyntaxKind.AtToken | SyntaxKind.NewLineTrivia | SyntaxKind.AsteriskToken | SyntaxKind.OpenBraceToken | SyntaxKind.CloseBraceToken | SyntaxKind.LessThanToken | SyntaxKind.GreaterThanToken | SyntaxKind.OpenBracketToken | SyntaxKind.CloseBracketToken | SyntaxKind.EqualsToken | SyntaxKind.CommaToken | SyntaxKind.DotToken | SyntaxKind.Identifier | SyntaxKind.BacktickToken | SyntaxKind.Unknown | KeywordSyntaxKind;
76
- export type KeywordSyntaxKind = SyntaxKind.AbstractKeyword | SyntaxKind.AnyKeyword | SyntaxKind.AsKeyword | SyntaxKind.BigIntKeyword | SyntaxKind.BooleanKeyword | SyntaxKind.BreakKeyword | SyntaxKind.CaseKeyword | SyntaxKind.CatchKeyword | SyntaxKind.ClassKeyword | SyntaxKind.ContinueKeyword | SyntaxKind.ConstKeyword | SyntaxKind.ConstructorKeyword | SyntaxKind.DebuggerKeyword | SyntaxKind.DeclareKeyword | SyntaxKind.DefaultKeyword | SyntaxKind.DeleteKeyword | SyntaxKind.DoKeyword | SyntaxKind.ElseKeyword | SyntaxKind.EnumKeyword | SyntaxKind.ExportKeyword | SyntaxKind.ExtendsKeyword | SyntaxKind.FalseKeyword | SyntaxKind.FinallyKeyword | SyntaxKind.ForKeyword | SyntaxKind.FromKeyword | SyntaxKind.FunctionKeyword | SyntaxKind.GetKeyword | SyntaxKind.IfKeyword | SyntaxKind.ImplementsKeyword | SyntaxKind.ImportKeyword | SyntaxKind.InKeyword | SyntaxKind.InferKeyword | SyntaxKind.InstanceOfKeyword | SyntaxKind.InterfaceKeyword | SyntaxKind.IsKeyword | SyntaxKind.KeyOfKeyword | SyntaxKind.LetKeyword | SyntaxKind.ModuleKeyword | SyntaxKind.NamespaceKeyword | SyntaxKind.NeverKeyword | SyntaxKind.NewKeyword | SyntaxKind.NullKeyword | SyntaxKind.NumberKeyword | SyntaxKind.ObjectKeyword | SyntaxKind.PackageKeyword | SyntaxKind.PrivateKeyword | SyntaxKind.ProtectedKeyword | SyntaxKind.PublicKeyword | SyntaxKind.ReadonlyKeyword | SyntaxKind.RequireKeyword | SyntaxKind.GlobalKeyword | SyntaxKind.ReturnKeyword | SyntaxKind.SetKeyword | SyntaxKind.StaticKeyword | SyntaxKind.StringKeyword | SyntaxKind.SuperKeyword | SyntaxKind.SwitchKeyword | SyntaxKind.SymbolKeyword | SyntaxKind.ThisKeyword | SyntaxKind.ThrowKeyword | SyntaxKind.TrueKeyword | SyntaxKind.TryKeyword | SyntaxKind.TypeKeyword | SyntaxKind.TypeOfKeyword | SyntaxKind.UndefinedKeyword | SyntaxKind.UniqueKeyword | SyntaxKind.UnknownKeyword | SyntaxKind.VarKeyword | SyntaxKind.VoidKeyword | SyntaxKind.WhileKeyword | SyntaxKind.WithKeyword | SyntaxKind.YieldKeyword | SyntaxKind.AsyncKeyword | SyntaxKind.AwaitKeyword | SyntaxKind.OfKeyword;
76
+ export type KeywordSyntaxKind = SyntaxKind.AbstractKeyword | SyntaxKind.AnyKeyword | SyntaxKind.AsKeyword | SyntaxKind.AssertsKeyword | SyntaxKind.BigIntKeyword | SyntaxKind.BooleanKeyword | SyntaxKind.BreakKeyword | SyntaxKind.CaseKeyword | SyntaxKind.CatchKeyword | SyntaxKind.ClassKeyword | SyntaxKind.ContinueKeyword | SyntaxKind.ConstKeyword | SyntaxKind.ConstructorKeyword | SyntaxKind.DebuggerKeyword | SyntaxKind.DeclareKeyword | SyntaxKind.DefaultKeyword | SyntaxKind.DeleteKeyword | SyntaxKind.DoKeyword | SyntaxKind.ElseKeyword | SyntaxKind.EnumKeyword | SyntaxKind.ExportKeyword | SyntaxKind.ExtendsKeyword | SyntaxKind.FalseKeyword | SyntaxKind.FinallyKeyword | SyntaxKind.ForKeyword | SyntaxKind.FromKeyword | SyntaxKind.FunctionKeyword | SyntaxKind.GetKeyword | SyntaxKind.IfKeyword | SyntaxKind.ImplementsKeyword | SyntaxKind.ImportKeyword | SyntaxKind.InKeyword | SyntaxKind.InferKeyword | SyntaxKind.InstanceOfKeyword | SyntaxKind.InterfaceKeyword | SyntaxKind.IsKeyword | SyntaxKind.KeyOfKeyword | SyntaxKind.LetKeyword | SyntaxKind.ModuleKeyword | SyntaxKind.NamespaceKeyword | SyntaxKind.NeverKeyword | SyntaxKind.NewKeyword | SyntaxKind.NullKeyword | SyntaxKind.NumberKeyword | SyntaxKind.ObjectKeyword | SyntaxKind.PackageKeyword | SyntaxKind.PrivateKeyword | SyntaxKind.ProtectedKeyword | SyntaxKind.PublicKeyword | SyntaxKind.ReadonlyKeyword | SyntaxKind.RequireKeyword | SyntaxKind.GlobalKeyword | SyntaxKind.ReturnKeyword | SyntaxKind.SetKeyword | SyntaxKind.StaticKeyword | SyntaxKind.StringKeyword | SyntaxKind.SuperKeyword | SyntaxKind.SwitchKeyword | SyntaxKind.SymbolKeyword | SyntaxKind.ThisKeyword | SyntaxKind.ThrowKeyword | SyntaxKind.TrueKeyword | SyntaxKind.TryKeyword | SyntaxKind.TypeKeyword | SyntaxKind.TypeOfKeyword | SyntaxKind.UndefinedKeyword | SyntaxKind.UniqueKeyword | SyntaxKind.UnknownKeyword | SyntaxKind.VarKeyword | SyntaxKind.VoidKeyword | SyntaxKind.WhileKeyword | SyntaxKind.WithKeyword | SyntaxKind.YieldKeyword | SyntaxKind.AsyncKeyword | SyntaxKind.AwaitKeyword | SyntaxKind.OfKeyword;
77
77
  export type JsxTokenSyntaxKind = SyntaxKind.LessThanSlashToken | SyntaxKind.EndOfFileToken | SyntaxKind.ConflictMarkerTrivia | SyntaxKind.JsxText | SyntaxKind.JsxTextAllWhiteSpaces | SyntaxKind.OpenBraceToken | SyntaxKind.LessThanToken;
78
78
  export enum SyntaxKind {
79
79
  Unknown = 0,
@@ -104,329 +104,335 @@ declare namespace ts {
104
104
  DotDotDotToken = 25,
105
105
  SemicolonToken = 26,
106
106
  CommaToken = 27,
107
- LessThanToken = 28,
108
- LessThanSlashToken = 29,
109
- GreaterThanToken = 30,
110
- LessThanEqualsToken = 31,
111
- GreaterThanEqualsToken = 32,
112
- EqualsEqualsToken = 33,
113
- ExclamationEqualsToken = 34,
114
- EqualsEqualsEqualsToken = 35,
115
- ExclamationEqualsEqualsToken = 36,
116
- EqualsGreaterThanToken = 37,
117
- PlusToken = 38,
118
- MinusToken = 39,
119
- AsteriskToken = 40,
120
- AsteriskAsteriskToken = 41,
121
- SlashToken = 42,
122
- PercentToken = 43,
123
- PlusPlusToken = 44,
124
- MinusMinusToken = 45,
125
- LessThanLessThanToken = 46,
126
- GreaterThanGreaterThanToken = 47,
127
- GreaterThanGreaterThanGreaterThanToken = 48,
128
- AmpersandToken = 49,
129
- BarToken = 50,
130
- CaretToken = 51,
131
- ExclamationToken = 52,
132
- TildeToken = 53,
133
- AmpersandAmpersandToken = 54,
134
- BarBarToken = 55,
135
- QuestionToken = 56,
136
- ColonToken = 57,
137
- AtToken = 58,
107
+ QuestionDotToken = 28,
108
+ LessThanToken = 29,
109
+ LessThanSlashToken = 30,
110
+ GreaterThanToken = 31,
111
+ LessThanEqualsToken = 32,
112
+ GreaterThanEqualsToken = 33,
113
+ EqualsEqualsToken = 34,
114
+ ExclamationEqualsToken = 35,
115
+ EqualsEqualsEqualsToken = 36,
116
+ ExclamationEqualsEqualsToken = 37,
117
+ EqualsGreaterThanToken = 38,
118
+ PlusToken = 39,
119
+ MinusToken = 40,
120
+ AsteriskToken = 41,
121
+ AsteriskAsteriskToken = 42,
122
+ SlashToken = 43,
123
+ PercentToken = 44,
124
+ PlusPlusToken = 45,
125
+ MinusMinusToken = 46,
126
+ LessThanLessThanToken = 47,
127
+ GreaterThanGreaterThanToken = 48,
128
+ GreaterThanGreaterThanGreaterThanToken = 49,
129
+ AmpersandToken = 50,
130
+ BarToken = 51,
131
+ CaretToken = 52,
132
+ ExclamationToken = 53,
133
+ TildeToken = 54,
134
+ AmpersandAmpersandToken = 55,
135
+ BarBarToken = 56,
136
+ QuestionToken = 57,
137
+ ColonToken = 58,
138
+ AtToken = 59,
139
+ QuestionQuestionToken = 60,
138
140
  /** Only the JSDoc scanner produces BacktickToken. The normal scanner produces NoSubstitutionTemplateLiteral and related kinds. */
139
- BacktickToken = 59,
140
- EqualsToken = 60,
141
- PlusEqualsToken = 61,
142
- MinusEqualsToken = 62,
143
- AsteriskEqualsToken = 63,
144
- AsteriskAsteriskEqualsToken = 64,
145
- SlashEqualsToken = 65,
146
- PercentEqualsToken = 66,
147
- LessThanLessThanEqualsToken = 67,
148
- GreaterThanGreaterThanEqualsToken = 68,
149
- GreaterThanGreaterThanGreaterThanEqualsToken = 69,
150
- AmpersandEqualsToken = 70,
151
- BarEqualsToken = 71,
152
- CaretEqualsToken = 72,
153
- Identifier = 73,
154
- BreakKeyword = 74,
155
- CaseKeyword = 75,
156
- CatchKeyword = 76,
157
- ClassKeyword = 77,
158
- ConstKeyword = 78,
159
- ContinueKeyword = 79,
160
- DebuggerKeyword = 80,
161
- DefaultKeyword = 81,
162
- DeleteKeyword = 82,
163
- DoKeyword = 83,
164
- ElseKeyword = 84,
165
- EnumKeyword = 85,
166
- ExportKeyword = 86,
167
- ExtendsKeyword = 87,
168
- FalseKeyword = 88,
169
- FinallyKeyword = 89,
170
- ForKeyword = 90,
171
- FunctionKeyword = 91,
172
- IfKeyword = 92,
173
- ImportKeyword = 93,
174
- InKeyword = 94,
175
- InstanceOfKeyword = 95,
176
- NewKeyword = 96,
177
- NullKeyword = 97,
178
- ReturnKeyword = 98,
179
- SuperKeyword = 99,
180
- SwitchKeyword = 100,
181
- ThisKeyword = 101,
182
- ThrowKeyword = 102,
183
- TrueKeyword = 103,
184
- TryKeyword = 104,
185
- TypeOfKeyword = 105,
186
- VarKeyword = 106,
187
- VoidKeyword = 107,
188
- WhileKeyword = 108,
189
- WithKeyword = 109,
190
- ImplementsKeyword = 110,
191
- InterfaceKeyword = 111,
192
- LetKeyword = 112,
193
- PackageKeyword = 113,
194
- PrivateKeyword = 114,
195
- ProtectedKeyword = 115,
196
- PublicKeyword = 116,
197
- StaticKeyword = 117,
198
- YieldKeyword = 118,
199
- AbstractKeyword = 119,
200
- AsKeyword = 120,
201
- AnyKeyword = 121,
202
- AsyncKeyword = 122,
203
- AwaitKeyword = 123,
204
- BooleanKeyword = 124,
205
- ConstructorKeyword = 125,
206
- DeclareKeyword = 126,
207
- GetKeyword = 127,
208
- InferKeyword = 128,
209
- IsKeyword = 129,
210
- KeyOfKeyword = 130,
211
- ModuleKeyword = 131,
212
- NamespaceKeyword = 132,
213
- NeverKeyword = 133,
214
- ReadonlyKeyword = 134,
215
- RequireKeyword = 135,
216
- NumberKeyword = 136,
217
- ObjectKeyword = 137,
218
- SetKeyword = 138,
219
- StringKeyword = 139,
220
- SymbolKeyword = 140,
221
- TypeKeyword = 141,
222
- UndefinedKeyword = 142,
223
- UniqueKeyword = 143,
224
- UnknownKeyword = 144,
225
- FromKeyword = 145,
226
- GlobalKeyword = 146,
227
- BigIntKeyword = 147,
228
- OfKeyword = 148,
229
- QualifiedName = 149,
230
- ComputedPropertyName = 150,
231
- TypeParameter = 151,
232
- Parameter = 152,
233
- Decorator = 153,
234
- PropertySignature = 154,
235
- PropertyDeclaration = 155,
236
- MethodSignature = 156,
237
- MethodDeclaration = 157,
238
- Constructor = 158,
239
- GetAccessor = 159,
240
- SetAccessor = 160,
241
- CallSignature = 161,
242
- ConstructSignature = 162,
243
- IndexSignature = 163,
244
- TypePredicate = 164,
245
- TypeReference = 165,
246
- FunctionType = 166,
247
- ConstructorType = 167,
248
- TypeQuery = 168,
249
- TypeLiteral = 169,
250
- ArrayType = 170,
251
- TupleType = 171,
252
- OptionalType = 172,
253
- RestType = 173,
254
- UnionType = 174,
255
- IntersectionType = 175,
256
- ConditionalType = 176,
257
- InferType = 177,
258
- ParenthesizedType = 178,
259
- ThisType = 179,
260
- TypeOperator = 180,
261
- IndexedAccessType = 181,
262
- MappedType = 182,
263
- LiteralType = 183,
264
- ImportType = 184,
265
- ObjectBindingPattern = 185,
266
- ArrayBindingPattern = 186,
267
- BindingElement = 187,
268
- ArrayLiteralExpression = 188,
269
- ObjectLiteralExpression = 189,
270
- PropertyAccessExpression = 190,
271
- ElementAccessExpression = 191,
272
- CallExpression = 192,
273
- NewExpression = 193,
274
- TaggedTemplateExpression = 194,
275
- TypeAssertionExpression = 195,
276
- ParenthesizedExpression = 196,
277
- FunctionExpression = 197,
278
- ArrowFunction = 198,
279
- DeleteExpression = 199,
280
- TypeOfExpression = 200,
281
- VoidExpression = 201,
282
- AwaitExpression = 202,
283
- PrefixUnaryExpression = 203,
284
- PostfixUnaryExpression = 204,
285
- BinaryExpression = 205,
286
- ConditionalExpression = 206,
287
- TemplateExpression = 207,
288
- YieldExpression = 208,
289
- SpreadElement = 209,
290
- ClassExpression = 210,
291
- OmittedExpression = 211,
292
- ExpressionWithTypeArguments = 212,
293
- AsExpression = 213,
294
- NonNullExpression = 214,
295
- MetaProperty = 215,
296
- SyntheticExpression = 216,
297
- TemplateSpan = 217,
298
- SemicolonClassElement = 218,
299
- Block = 219,
300
- VariableStatement = 220,
301
- EmptyStatement = 221,
302
- ExpressionStatement = 222,
303
- IfStatement = 223,
304
- DoStatement = 224,
305
- WhileStatement = 225,
306
- ForStatement = 226,
307
- ForInStatement = 227,
308
- ForOfStatement = 228,
309
- ContinueStatement = 229,
310
- BreakStatement = 230,
311
- ReturnStatement = 231,
312
- WithStatement = 232,
313
- SwitchStatement = 233,
314
- LabeledStatement = 234,
315
- ThrowStatement = 235,
316
- TryStatement = 236,
317
- DebuggerStatement = 237,
318
- VariableDeclaration = 238,
319
- VariableDeclarationList = 239,
320
- FunctionDeclaration = 240,
321
- ClassDeclaration = 241,
322
- InterfaceDeclaration = 242,
323
- TypeAliasDeclaration = 243,
324
- EnumDeclaration = 244,
325
- ModuleDeclaration = 245,
326
- ModuleBlock = 246,
327
- CaseBlock = 247,
328
- NamespaceExportDeclaration = 248,
329
- ImportEqualsDeclaration = 249,
330
- ImportDeclaration = 250,
331
- ImportClause = 251,
332
- NamespaceImport = 252,
333
- NamedImports = 253,
334
- ImportSpecifier = 254,
335
- ExportAssignment = 255,
336
- ExportDeclaration = 256,
337
- NamedExports = 257,
338
- ExportSpecifier = 258,
339
- MissingDeclaration = 259,
340
- ExternalModuleReference = 260,
341
- JsxElement = 261,
342
- JsxSelfClosingElement = 262,
343
- JsxOpeningElement = 263,
344
- JsxClosingElement = 264,
345
- JsxFragment = 265,
346
- JsxOpeningFragment = 266,
347
- JsxClosingFragment = 267,
348
- JsxAttribute = 268,
349
- JsxAttributes = 269,
350
- JsxSpreadAttribute = 270,
351
- JsxExpression = 271,
352
- CaseClause = 272,
353
- DefaultClause = 273,
354
- HeritageClause = 274,
355
- CatchClause = 275,
356
- PropertyAssignment = 276,
357
- ShorthandPropertyAssignment = 277,
358
- SpreadAssignment = 278,
359
- EnumMember = 279,
360
- UnparsedPrologue = 280,
361
- UnparsedPrepend = 281,
362
- UnparsedText = 282,
363
- UnparsedInternalText = 283,
364
- UnparsedSyntheticReference = 284,
365
- SourceFile = 285,
366
- Bundle = 286,
367
- UnparsedSource = 287,
368
- InputFiles = 288,
369
- JSDocTypeExpression = 289,
370
- JSDocAllType = 290,
371
- JSDocUnknownType = 291,
372
- JSDocNullableType = 292,
373
- JSDocNonNullableType = 293,
374
- JSDocOptionalType = 294,
375
- JSDocFunctionType = 295,
376
- JSDocVariadicType = 296,
377
- JSDocNamepathType = 297,
378
- JSDocComment = 298,
379
- JSDocTypeLiteral = 299,
380
- JSDocSignature = 300,
381
- JSDocTag = 301,
382
- JSDocAugmentsTag = 302,
383
- JSDocAuthorTag = 303,
384
- JSDocClassTag = 304,
385
- JSDocCallbackTag = 305,
386
- JSDocEnumTag = 306,
387
- JSDocParameterTag = 307,
388
- JSDocReturnTag = 308,
389
- JSDocThisTag = 309,
390
- JSDocTypeTag = 310,
391
- JSDocTemplateTag = 311,
392
- JSDocTypedefTag = 312,
393
- JSDocPropertyTag = 313,
394
- SyntaxList = 314,
395
- NotEmittedStatement = 315,
396
- PartiallyEmittedExpression = 316,
397
- CommaListExpression = 317,
398
- MergeDeclarationMarker = 318,
399
- EndOfDeclarationMarker = 319,
400
- Count = 320,
401
- FirstAssignment = 60,
402
- LastAssignment = 72,
403
- FirstCompoundAssignment = 61,
404
- LastCompoundAssignment = 72,
405
- FirstReservedWord = 74,
406
- LastReservedWord = 109,
407
- FirstKeyword = 74,
408
- LastKeyword = 148,
409
- FirstFutureReservedWord = 110,
410
- LastFutureReservedWord = 118,
411
- FirstTypeNode = 164,
412
- LastTypeNode = 184,
141
+ BacktickToken = 61,
142
+ EqualsToken = 62,
143
+ PlusEqualsToken = 63,
144
+ MinusEqualsToken = 64,
145
+ AsteriskEqualsToken = 65,
146
+ AsteriskAsteriskEqualsToken = 66,
147
+ SlashEqualsToken = 67,
148
+ PercentEqualsToken = 68,
149
+ LessThanLessThanEqualsToken = 69,
150
+ GreaterThanGreaterThanEqualsToken = 70,
151
+ GreaterThanGreaterThanGreaterThanEqualsToken = 71,
152
+ AmpersandEqualsToken = 72,
153
+ BarEqualsToken = 73,
154
+ CaretEqualsToken = 74,
155
+ Identifier = 75,
156
+ BreakKeyword = 76,
157
+ CaseKeyword = 77,
158
+ CatchKeyword = 78,
159
+ ClassKeyword = 79,
160
+ ConstKeyword = 80,
161
+ ContinueKeyword = 81,
162
+ DebuggerKeyword = 82,
163
+ DefaultKeyword = 83,
164
+ DeleteKeyword = 84,
165
+ DoKeyword = 85,
166
+ ElseKeyword = 86,
167
+ EnumKeyword = 87,
168
+ ExportKeyword = 88,
169
+ ExtendsKeyword = 89,
170
+ FalseKeyword = 90,
171
+ FinallyKeyword = 91,
172
+ ForKeyword = 92,
173
+ FunctionKeyword = 93,
174
+ IfKeyword = 94,
175
+ ImportKeyword = 95,
176
+ InKeyword = 96,
177
+ InstanceOfKeyword = 97,
178
+ NewKeyword = 98,
179
+ NullKeyword = 99,
180
+ ReturnKeyword = 100,
181
+ SuperKeyword = 101,
182
+ SwitchKeyword = 102,
183
+ ThisKeyword = 103,
184
+ ThrowKeyword = 104,
185
+ TrueKeyword = 105,
186
+ TryKeyword = 106,
187
+ TypeOfKeyword = 107,
188
+ VarKeyword = 108,
189
+ VoidKeyword = 109,
190
+ WhileKeyword = 110,
191
+ WithKeyword = 111,
192
+ ImplementsKeyword = 112,
193
+ InterfaceKeyword = 113,
194
+ LetKeyword = 114,
195
+ PackageKeyword = 115,
196
+ PrivateKeyword = 116,
197
+ ProtectedKeyword = 117,
198
+ PublicKeyword = 118,
199
+ StaticKeyword = 119,
200
+ YieldKeyword = 120,
201
+ AbstractKeyword = 121,
202
+ AsKeyword = 122,
203
+ AssertsKeyword = 123,
204
+ AnyKeyword = 124,
205
+ AsyncKeyword = 125,
206
+ AwaitKeyword = 126,
207
+ BooleanKeyword = 127,
208
+ ConstructorKeyword = 128,
209
+ DeclareKeyword = 129,
210
+ GetKeyword = 130,
211
+ InferKeyword = 131,
212
+ IsKeyword = 132,
213
+ KeyOfKeyword = 133,
214
+ ModuleKeyword = 134,
215
+ NamespaceKeyword = 135,
216
+ NeverKeyword = 136,
217
+ ReadonlyKeyword = 137,
218
+ RequireKeyword = 138,
219
+ NumberKeyword = 139,
220
+ ObjectKeyword = 140,
221
+ SetKeyword = 141,
222
+ StringKeyword = 142,
223
+ SymbolKeyword = 143,
224
+ TypeKeyword = 144,
225
+ UndefinedKeyword = 145,
226
+ UniqueKeyword = 146,
227
+ UnknownKeyword = 147,
228
+ FromKeyword = 148,
229
+ GlobalKeyword = 149,
230
+ BigIntKeyword = 150,
231
+ OfKeyword = 151,
232
+ QualifiedName = 152,
233
+ ComputedPropertyName = 153,
234
+ TypeParameter = 154,
235
+ Parameter = 155,
236
+ Decorator = 156,
237
+ PropertySignature = 157,
238
+ PropertyDeclaration = 158,
239
+ MethodSignature = 159,
240
+ MethodDeclaration = 160,
241
+ Constructor = 161,
242
+ GetAccessor = 162,
243
+ SetAccessor = 163,
244
+ CallSignature = 164,
245
+ ConstructSignature = 165,
246
+ IndexSignature = 166,
247
+ TypePredicate = 167,
248
+ TypeReference = 168,
249
+ FunctionType = 169,
250
+ ConstructorType = 170,
251
+ TypeQuery = 171,
252
+ TypeLiteral = 172,
253
+ ArrayType = 173,
254
+ TupleType = 174,
255
+ OptionalType = 175,
256
+ RestType = 176,
257
+ UnionType = 177,
258
+ IntersectionType = 178,
259
+ ConditionalType = 179,
260
+ InferType = 180,
261
+ ParenthesizedType = 181,
262
+ ThisType = 182,
263
+ TypeOperator = 183,
264
+ IndexedAccessType = 184,
265
+ MappedType = 185,
266
+ LiteralType = 186,
267
+ ImportType = 187,
268
+ ObjectBindingPattern = 188,
269
+ ArrayBindingPattern = 189,
270
+ BindingElement = 190,
271
+ ArrayLiteralExpression = 191,
272
+ ObjectLiteralExpression = 192,
273
+ PropertyAccessExpression = 193,
274
+ ElementAccessExpression = 194,
275
+ CallExpression = 195,
276
+ NewExpression = 196,
277
+ TaggedTemplateExpression = 197,
278
+ TypeAssertionExpression = 198,
279
+ ParenthesizedExpression = 199,
280
+ FunctionExpression = 200,
281
+ ArrowFunction = 201,
282
+ DeleteExpression = 202,
283
+ TypeOfExpression = 203,
284
+ VoidExpression = 204,
285
+ AwaitExpression = 205,
286
+ PrefixUnaryExpression = 206,
287
+ PostfixUnaryExpression = 207,
288
+ BinaryExpression = 208,
289
+ ConditionalExpression = 209,
290
+ TemplateExpression = 210,
291
+ YieldExpression = 211,
292
+ SpreadElement = 212,
293
+ ClassExpression = 213,
294
+ OmittedExpression = 214,
295
+ ExpressionWithTypeArguments = 215,
296
+ AsExpression = 216,
297
+ NonNullExpression = 217,
298
+ MetaProperty = 218,
299
+ SyntheticExpression = 219,
300
+ TemplateSpan = 220,
301
+ SemicolonClassElement = 221,
302
+ Block = 222,
303
+ EmptyStatement = 223,
304
+ VariableStatement = 224,
305
+ ExpressionStatement = 225,
306
+ IfStatement = 226,
307
+ DoStatement = 227,
308
+ WhileStatement = 228,
309
+ ForStatement = 229,
310
+ ForInStatement = 230,
311
+ ForOfStatement = 231,
312
+ ContinueStatement = 232,
313
+ BreakStatement = 233,
314
+ ReturnStatement = 234,
315
+ WithStatement = 235,
316
+ SwitchStatement = 236,
317
+ LabeledStatement = 237,
318
+ ThrowStatement = 238,
319
+ TryStatement = 239,
320
+ DebuggerStatement = 240,
321
+ VariableDeclaration = 241,
322
+ VariableDeclarationList = 242,
323
+ FunctionDeclaration = 243,
324
+ ClassDeclaration = 244,
325
+ InterfaceDeclaration = 245,
326
+ TypeAliasDeclaration = 246,
327
+ EnumDeclaration = 247,
328
+ ModuleDeclaration = 248,
329
+ ModuleBlock = 249,
330
+ CaseBlock = 250,
331
+ NamespaceExportDeclaration = 251,
332
+ ImportEqualsDeclaration = 252,
333
+ ImportDeclaration = 253,
334
+ ImportClause = 254,
335
+ NamespaceImport = 255,
336
+ NamedImports = 256,
337
+ ImportSpecifier = 257,
338
+ ExportAssignment = 258,
339
+ ExportDeclaration = 259,
340
+ NamedExports = 260,
341
+ ExportSpecifier = 261,
342
+ MissingDeclaration = 262,
343
+ ExternalModuleReference = 263,
344
+ JsxElement = 264,
345
+ JsxSelfClosingElement = 265,
346
+ JsxOpeningElement = 266,
347
+ JsxClosingElement = 267,
348
+ JsxFragment = 268,
349
+ JsxOpeningFragment = 269,
350
+ JsxClosingFragment = 270,
351
+ JsxAttribute = 271,
352
+ JsxAttributes = 272,
353
+ JsxSpreadAttribute = 273,
354
+ JsxExpression = 274,
355
+ CaseClause = 275,
356
+ DefaultClause = 276,
357
+ HeritageClause = 277,
358
+ CatchClause = 278,
359
+ PropertyAssignment = 279,
360
+ ShorthandPropertyAssignment = 280,
361
+ SpreadAssignment = 281,
362
+ EnumMember = 282,
363
+ UnparsedPrologue = 283,
364
+ UnparsedPrepend = 284,
365
+ UnparsedText = 285,
366
+ UnparsedInternalText = 286,
367
+ UnparsedSyntheticReference = 287,
368
+ SourceFile = 288,
369
+ Bundle = 289,
370
+ UnparsedSource = 290,
371
+ InputFiles = 291,
372
+ JSDocTypeExpression = 292,
373
+ JSDocAllType = 293,
374
+ JSDocUnknownType = 294,
375
+ JSDocNullableType = 295,
376
+ JSDocNonNullableType = 296,
377
+ JSDocOptionalType = 297,
378
+ JSDocFunctionType = 298,
379
+ JSDocVariadicType = 299,
380
+ JSDocNamepathType = 300,
381
+ JSDocComment = 301,
382
+ JSDocTypeLiteral = 302,
383
+ JSDocSignature = 303,
384
+ JSDocTag = 304,
385
+ JSDocAugmentsTag = 305,
386
+ JSDocAuthorTag = 306,
387
+ JSDocClassTag = 307,
388
+ JSDocCallbackTag = 308,
389
+ JSDocEnumTag = 309,
390
+ JSDocParameterTag = 310,
391
+ JSDocReturnTag = 311,
392
+ JSDocThisTag = 312,
393
+ JSDocTypeTag = 313,
394
+ JSDocTemplateTag = 314,
395
+ JSDocTypedefTag = 315,
396
+ JSDocPropertyTag = 316,
397
+ SyntaxList = 317,
398
+ NotEmittedStatement = 318,
399
+ PartiallyEmittedExpression = 319,
400
+ CommaListExpression = 320,
401
+ MergeDeclarationMarker = 321,
402
+ EndOfDeclarationMarker = 322,
403
+ SyntheticReferenceExpression = 323,
404
+ Count = 324,
405
+ FirstAssignment = 62,
406
+ LastAssignment = 74,
407
+ FirstCompoundAssignment = 63,
408
+ LastCompoundAssignment = 74,
409
+ FirstReservedWord = 76,
410
+ LastReservedWord = 111,
411
+ FirstKeyword = 76,
412
+ LastKeyword = 151,
413
+ FirstFutureReservedWord = 112,
414
+ LastFutureReservedWord = 120,
415
+ FirstTypeNode = 167,
416
+ LastTypeNode = 187,
413
417
  FirstPunctuation = 18,
414
- LastPunctuation = 72,
418
+ LastPunctuation = 74,
415
419
  FirstToken = 0,
416
- LastToken = 148,
420
+ LastToken = 151,
417
421
  FirstTriviaToken = 2,
418
422
  LastTriviaToken = 7,
419
423
  FirstLiteralToken = 8,
420
424
  LastLiteralToken = 14,
421
425
  FirstTemplateToken = 14,
422
426
  LastTemplateToken = 17,
423
- FirstBinaryOperator = 28,
424
- LastBinaryOperator = 72,
425
- FirstNode = 149,
426
- FirstJSDocNode = 289,
427
- LastJSDocNode = 313,
428
- FirstJSDocTagNode = 301,
429
- LastJSDocTagNode = 313,
427
+ FirstBinaryOperator = 29,
428
+ LastBinaryOperator = 74,
429
+ FirstStatement = 224,
430
+ LastStatement = 240,
431
+ FirstNode = 152,
432
+ FirstJSDocNode = 292,
433
+ LastJSDocNode = 316,
434
+ FirstJSDocTagNode = 304,
435
+ LastJSDocTagNode = 316,
430
436
  }
431
437
  export enum NodeFlags {
432
438
  None = 0,
@@ -435,27 +441,28 @@ declare namespace ts {
435
441
  NestedNamespace = 4,
436
442
  Synthesized = 8,
437
443
  Namespace = 16,
438
- ExportContext = 32,
439
- ContainsThis = 64,
440
- HasImplicitReturn = 128,
441
- HasExplicitReturn = 256,
442
- GlobalAugmentation = 512,
443
- HasAsyncFunctions = 1024,
444
- DisallowInContext = 2048,
445
- YieldContext = 4096,
446
- DecoratorContext = 8192,
447
- AwaitContext = 16384,
448
- ThisNodeHasError = 32768,
449
- JavaScriptFile = 65536,
450
- ThisNodeOrAnySubNodesHasError = 131072,
451
- HasAggregatedChildData = 262144,
452
- JSDoc = 2097152,
453
- JsonFile = 16777216,
444
+ OptionalChain = 32,
445
+ ExportContext = 64,
446
+ ContainsThis = 128,
447
+ HasImplicitReturn = 256,
448
+ HasExplicitReturn = 512,
449
+ GlobalAugmentation = 1024,
450
+ HasAsyncFunctions = 2048,
451
+ DisallowInContext = 4096,
452
+ YieldContext = 8192,
453
+ DecoratorContext = 16384,
454
+ AwaitContext = 32768,
455
+ ThisNodeHasError = 65536,
456
+ JavaScriptFile = 131072,
457
+ ThisNodeOrAnySubNodesHasError = 262144,
458
+ HasAggregatedChildData = 524288,
459
+ JSDoc = 4194304,
460
+ JsonFile = 33554432,
454
461
  BlockScoped = 3,
455
- ReachabilityCheckFlags = 384,
456
- ReachabilityAndEmitFlags = 1408,
457
- ContextFlags = 12679168,
458
- TypeExcludesFlags = 20480,
462
+ ReachabilityCheckFlags = 768,
463
+ ReachabilityAndEmitFlags = 2816,
464
+ ContextFlags = 25358336,
465
+ TypeExcludesFlags = 40960,
459
466
  }
460
467
  export enum ModifierFlags {
461
468
  None = 0,
@@ -505,8 +512,10 @@ declare namespace ts {
505
512
  export interface Token<TKind extends SyntaxKind> extends Node {
506
513
  kind: TKind;
507
514
  }
515
+ export type DotToken = Token<SyntaxKind.DotToken>;
508
516
  export type DotDotDotToken = Token<SyntaxKind.DotDotDotToken>;
509
517
  export type QuestionToken = Token<SyntaxKind.QuestionToken>;
518
+ export type QuestionDotToken = Token<SyntaxKind.QuestionDotToken>;
510
519
  export type ExclamationToken = Token<SyntaxKind.ExclamationToken>;
511
520
  export type ColonToken = Token<SyntaxKind.ColonToken>;
512
521
  export type EqualsToken = Token<SyntaxKind.EqualsToken>;
@@ -517,6 +526,7 @@ declare namespace ts {
517
526
  export type AwaitKeywordToken = Token<SyntaxKind.AwaitKeyword>;
518
527
  export type PlusToken = Token<SyntaxKind.PlusToken>;
519
528
  export type MinusToken = Token<SyntaxKind.MinusToken>;
529
+ export type AssertsToken = Token<SyntaxKind.AssertsKeyword>;
520
530
  export type Modifier = Token<SyntaxKind.AbstractKeyword> | Token<SyntaxKind.AsyncKeyword> | Token<SyntaxKind.ConstKeyword> | Token<SyntaxKind.DeclareKeyword> | Token<SyntaxKind.DefaultKeyword> | Token<SyntaxKind.ExportKeyword> | Token<SyntaxKind.PublicKeyword> | Token<SyntaxKind.PrivateKeyword> | Token<SyntaxKind.ProtectedKeyword> | Token<SyntaxKind.ReadonlyKeyword> | Token<SyntaxKind.StaticKeyword>;
521
531
  export type ModifiersArray = NodeArray<Modifier>;
522
532
  export interface Identifier extends PrimaryExpression, Declaration {
@@ -539,7 +549,7 @@ declare namespace ts {
539
549
  }
540
550
  export type EntityName = Identifier | QualifiedName;
541
551
  export type PropertyName = Identifier | StringLiteral | NumericLiteral | ComputedPropertyName;
542
- export type DeclarationName = Identifier | StringLiteralLike | NumericLiteral | ComputedPropertyName | BindingPattern;
552
+ export type DeclarationName = Identifier | StringLiteralLike | NumericLiteral | ComputedPropertyName | ElementAccessExpression | BindingPattern | EntityNameExpression;
543
553
  export interface Declaration extends Node {
544
554
  _declarationBrand: any;
545
555
  }
@@ -770,8 +780,9 @@ declare namespace ts {
770
780
  export interface TypePredicateNode extends TypeNode {
771
781
  kind: SyntaxKind.TypePredicate;
772
782
  parent: SignatureDeclaration | JSDocTypeExpression;
783
+ assertsModifier?: AssertsToken;
773
784
  parameterName: Identifier | ThisTypeNode;
774
- type: TypeNode;
785
+ type?: TypeNode;
775
786
  }
776
787
  export interface TypeQueryNode extends TypeNode {
777
788
  kind: SyntaxKind.TypeQuery;
@@ -842,7 +853,7 @@ declare namespace ts {
842
853
  kind: SyntaxKind.LiteralType;
843
854
  literal: BooleanLiteral | LiteralExpression | PrefixUnaryExpression;
844
855
  }
845
- export interface StringLiteral extends LiteralExpression {
856
+ export interface StringLiteral extends LiteralExpression, Declaration {
846
857
  kind: SyntaxKind.StringLiteral;
847
858
  }
848
859
  export type StringLiteralLike = StringLiteral | NoSubstitutionTemplateLiteral;
@@ -943,7 +954,7 @@ declare namespace ts {
943
954
  export type LogicalOperatorOrHigher = BitwiseOperatorOrHigher | LogicalOperator;
944
955
  export type CompoundAssignmentOperator = SyntaxKind.PlusEqualsToken | SyntaxKind.MinusEqualsToken | SyntaxKind.AsteriskAsteriskEqualsToken | SyntaxKind.AsteriskEqualsToken | SyntaxKind.SlashEqualsToken | SyntaxKind.PercentEqualsToken | SyntaxKind.AmpersandEqualsToken | SyntaxKind.BarEqualsToken | SyntaxKind.CaretEqualsToken | SyntaxKind.LessThanLessThanEqualsToken | SyntaxKind.GreaterThanGreaterThanGreaterThanEqualsToken | SyntaxKind.GreaterThanGreaterThanEqualsToken;
945
956
  export type AssignmentOperator = SyntaxKind.EqualsToken | CompoundAssignmentOperator;
946
- export type AssignmentOperatorOrHigher = LogicalOperatorOrHigher | AssignmentOperator;
957
+ export type AssignmentOperatorOrHigher = SyntaxKind.QuestionQuestionToken | LogicalOperatorOrHigher | AssignmentOperator;
947
958
  export type BinaryOperator = AssignmentOperatorOrHigher | SyntaxKind.CommaToken;
948
959
  export type BinaryOperatorToken = Token<BinaryOperator>;
949
960
  export interface BinaryExpression extends Expression, Declaration {
@@ -1006,7 +1017,7 @@ declare namespace ts {
1006
1017
  export interface RegularExpressionLiteral extends LiteralExpression {
1007
1018
  kind: SyntaxKind.RegularExpressionLiteral;
1008
1019
  }
1009
- export interface NoSubstitutionTemplateLiteral extends LiteralExpression, TemplateLiteralLikeNode {
1020
+ export interface NoSubstitutionTemplateLiteral extends LiteralExpression, TemplateLiteralLikeNode, Declaration {
1010
1021
  kind: SyntaxKind.NoSubstitutionTemplateLiteral;
1011
1022
  }
1012
1023
  export enum TokenFlags {
@@ -1017,7 +1028,7 @@ declare namespace ts {
1017
1028
  BinarySpecifier = 128,
1018
1029
  OctalSpecifier = 256,
1019
1030
  }
1020
- export interface NumericLiteral extends LiteralExpression {
1031
+ export interface NumericLiteral extends LiteralExpression, Declaration {
1021
1032
  kind: SyntaxKind.NumericLiteral;
1022
1033
  }
1023
1034
  export interface BigIntLiteral extends LiteralExpression {
@@ -1077,8 +1088,12 @@ declare namespace ts {
1077
1088
  export interface PropertyAccessExpression extends MemberExpression, NamedDeclaration {
1078
1089
  kind: SyntaxKind.PropertyAccessExpression;
1079
1090
  expression: LeftHandSideExpression;
1091
+ questionDotToken?: QuestionDotToken;
1080
1092
  name: Identifier;
1081
1093
  }
1094
+ export interface PropertyAccessChain extends PropertyAccessExpression {
1095
+ _optionalChainBrand: any;
1096
+ }
1082
1097
  export interface SuperPropertyAccessExpression extends PropertyAccessExpression {
1083
1098
  expression: SuperExpression;
1084
1099
  }
@@ -1090,8 +1105,12 @@ declare namespace ts {
1090
1105
  export interface ElementAccessExpression extends MemberExpression {
1091
1106
  kind: SyntaxKind.ElementAccessExpression;
1092
1107
  expression: LeftHandSideExpression;
1108
+ questionDotToken?: QuestionDotToken;
1093
1109
  argumentExpression: Expression;
1094
1110
  }
1111
+ export interface ElementAccessChain extends ElementAccessExpression {
1112
+ _optionalChainBrand: any;
1113
+ }
1095
1114
  export interface SuperElementAccessExpression extends ElementAccessExpression {
1096
1115
  expression: SuperExpression;
1097
1116
  }
@@ -1099,9 +1118,14 @@ declare namespace ts {
1099
1118
  export interface CallExpression extends LeftHandSideExpression, Declaration {
1100
1119
  kind: SyntaxKind.CallExpression;
1101
1120
  expression: LeftHandSideExpression;
1121
+ questionDotToken?: QuestionDotToken;
1102
1122
  typeArguments?: NodeArray<TypeNode>;
1103
1123
  arguments: NodeArray<Expression>;
1104
1124
  }
1125
+ export interface CallChain extends CallExpression {
1126
+ _optionalChainBrand: any;
1127
+ }
1128
+ export type OptionalChain = PropertyAccessChain | ElementAccessChain | CallChain;
1105
1129
  export interface SuperCall extends CallExpression {
1106
1130
  expression: SuperExpression;
1107
1131
  }
@@ -1635,8 +1659,8 @@ declare namespace ts {
1635
1659
  }
1636
1660
  export interface JSDocSignature extends JSDocType, Declaration {
1637
1661
  kind: SyntaxKind.JSDocSignature;
1638
- typeParameters?: ReadonlyArray<JSDocTemplateTag>;
1639
- parameters: ReadonlyArray<JSDocParameterTag>;
1662
+ typeParameters?: readonly JSDocTemplateTag[];
1663
+ parameters: readonly JSDocParameterTag[];
1640
1664
  type: JSDocReturnTag | undefined;
1641
1665
  }
1642
1666
  export interface JSDocPropertyLikeTag extends JSDocTag, Declaration {
@@ -1655,7 +1679,7 @@ declare namespace ts {
1655
1679
  }
1656
1680
  export interface JSDocTypeLiteral extends JSDocType {
1657
1681
  kind: SyntaxKind.JSDocTypeLiteral;
1658
- jsDocPropertyTags?: ReadonlyArray<JSDocPropertyLikeTag>;
1682
+ jsDocPropertyTags?: readonly JSDocPropertyLikeTag[];
1659
1683
  /** If true, then this type literal represents an *array* of its type. */
1660
1684
  isArrayType?: boolean;
1661
1685
  }
@@ -1669,13 +1693,19 @@ declare namespace ts {
1669
1693
  FalseCondition = 64,
1670
1694
  SwitchClause = 128,
1671
1695
  ArrayMutation = 256,
1672
- Referenced = 512,
1673
- Shared = 1024,
1674
- PreFinally = 2048,
1675
- AfterFinally = 4096,
1696
+ Call = 512,
1697
+ Referenced = 1024,
1698
+ Shared = 2048,
1699
+ PreFinally = 4096,
1700
+ AfterFinally = 8192,
1676
1701
  Label = 12,
1677
1702
  Condition = 96
1678
1703
  }
1704
+ export type FlowNode = AfterFinallyFlow | PreFinallyFlow | FlowStart | FlowLabel | FlowAssignment | FlowCall | FlowCondition | FlowSwitchClause | FlowArrayMutation;
1705
+ export interface FlowNodeBase {
1706
+ flags: FlowFlags;
1707
+ id?: number;
1708
+ }
1679
1709
  export interface FlowLock {
1680
1710
  locked?: boolean;
1681
1711
  }
@@ -1686,13 +1716,8 @@ declare namespace ts {
1686
1716
  antecedent: FlowNode;
1687
1717
  lock: FlowLock;
1688
1718
  }
1689
- export type FlowNode = AfterFinallyFlow | PreFinallyFlow | FlowStart | FlowLabel | FlowAssignment | FlowCondition | FlowSwitchClause | FlowArrayMutation;
1690
- export interface FlowNodeBase {
1691
- flags: FlowFlags;
1692
- id?: number;
1693
- }
1694
1719
  export interface FlowStart extends FlowNodeBase {
1695
- container?: FunctionExpression | ArrowFunction | MethodDeclaration;
1720
+ node?: FunctionExpression | ArrowFunction | MethodDeclaration;
1696
1721
  }
1697
1722
  export interface FlowLabel extends FlowNodeBase {
1698
1723
  antecedents: FlowNode[] | undefined;
@@ -1701,8 +1726,12 @@ declare namespace ts {
1701
1726
  node: Expression | VariableDeclaration | BindingElement;
1702
1727
  antecedent: FlowNode;
1703
1728
  }
1729
+ export interface FlowCall extends FlowNodeBase {
1730
+ node: CallExpression;
1731
+ antecedent: FlowNode;
1732
+ }
1704
1733
  export interface FlowCondition extends FlowNodeBase {
1705
- expression: Expression;
1734
+ node: Expression;
1706
1735
  antecedent: FlowNode;
1707
1736
  }
1708
1737
  export interface FlowSwitchClause extends FlowNodeBase {
@@ -1730,11 +1759,11 @@ declare namespace ts {
1730
1759
  endOfFileToken: Token<SyntaxKind.EndOfFileToken>;
1731
1760
  fileName: string;
1732
1761
  text: string;
1733
- amdDependencies: ReadonlyArray<AmdDependency>;
1762
+ amdDependencies: readonly AmdDependency[];
1734
1763
  moduleName?: string;
1735
- referencedFiles: ReadonlyArray<FileReference>;
1736
- typeReferenceDirectives: ReadonlyArray<FileReference>;
1737
- libReferenceDirectives: ReadonlyArray<FileReference>;
1764
+ referencedFiles: readonly FileReference[];
1765
+ typeReferenceDirectives: readonly FileReference[];
1766
+ libReferenceDirectives: readonly FileReference[];
1738
1767
  languageVariant: LanguageVariant;
1739
1768
  isDeclarationFile: boolean;
1740
1769
  /**
@@ -1750,8 +1779,8 @@ declare namespace ts {
1750
1779
  }
1751
1780
  export interface Bundle extends Node {
1752
1781
  kind: SyntaxKind.Bundle;
1753
- prepends: ReadonlyArray<InputFiles | UnparsedSource>;
1754
- sourceFiles: ReadonlyArray<SourceFile>;
1782
+ prepends: readonly (InputFiles | UnparsedSource)[];
1783
+ sourceFiles: readonly SourceFile[];
1755
1784
  }
1756
1785
  export interface InputFiles extends Node {
1757
1786
  kind: SyntaxKind.InputFiles;
@@ -1768,16 +1797,16 @@ declare namespace ts {
1768
1797
  kind: SyntaxKind.UnparsedSource;
1769
1798
  fileName: string;
1770
1799
  text: string;
1771
- prologues: ReadonlyArray<UnparsedPrologue>;
1772
- helpers: ReadonlyArray<UnscopedEmitHelper> | undefined;
1773
- referencedFiles: ReadonlyArray<FileReference>;
1774
- typeReferenceDirectives: ReadonlyArray<string> | undefined;
1775
- libReferenceDirectives: ReadonlyArray<FileReference>;
1800
+ prologues: readonly UnparsedPrologue[];
1801
+ helpers: readonly UnscopedEmitHelper[] | undefined;
1802
+ referencedFiles: readonly FileReference[];
1803
+ typeReferenceDirectives: readonly string[] | undefined;
1804
+ libReferenceDirectives: readonly FileReference[];
1776
1805
  hasNoDefaultLib?: boolean;
1777
1806
  sourceMapPath?: string;
1778
1807
  sourceMapText?: string;
1779
- syntheticReferences?: ReadonlyArray<UnparsedSyntheticReference>;
1780
- texts: ReadonlyArray<UnparsedSourceText>;
1808
+ syntheticReferences?: readonly UnparsedSyntheticReference[];
1809
+ texts: readonly UnparsedSourceText[];
1781
1810
  }
1782
1811
  export type UnparsedSourceText = UnparsedPrepend | UnparsedTextLike;
1783
1812
  export type UnparsedNode = UnparsedPrologue | UnparsedSourceText | UnparsedSyntheticReference;
@@ -1795,7 +1824,7 @@ declare namespace ts {
1795
1824
  kind: SyntaxKind.UnparsedPrepend;
1796
1825
  data: string;
1797
1826
  parent: UnparsedSource;
1798
- texts: ReadonlyArray<UnparsedTextLike>;
1827
+ texts: readonly UnparsedTextLike[];
1799
1828
  }
1800
1829
  export interface UnparsedTextLike extends UnparsedSection {
1801
1830
  kind: SyntaxKind.UnparsedText | SyntaxKind.UnparsedInternalText;
@@ -1827,7 +1856,7 @@ declare namespace ts {
1827
1856
  }
1828
1857
  export interface ParseConfigHost {
1829
1858
  useCaseSensitiveFileNames: boolean;
1830
- readDirectory(rootDir: string, extensions: ReadonlyArray<string>, excludes: ReadonlyArray<string> | undefined, includes: ReadonlyArray<string>, depth?: number): ReadonlyArray<string>;
1859
+ readDirectory(rootDir: string, extensions: readonly string[], excludes: readonly string[] | undefined, includes: readonly string[], depth?: number): readonly string[];
1831
1860
  /**
1832
1861
  * Gets a value indicating whether the specified path exists and is a file.
1833
1862
  * @param path The path to test.
@@ -1844,7 +1873,7 @@ declare namespace ts {
1844
1873
  export type ResolvedConfigFileName = string & {
1845
1874
  _isResolvedConfigFileName: never;
1846
1875
  };
1847
- export type WriteFileCallback = (fileName: string, data: string, writeByteOrderMark: boolean, onError?: (message: string) => void, sourceFiles?: ReadonlyArray<SourceFile>) => void;
1876
+ export type WriteFileCallback = (fileName: string, data: string, writeByteOrderMark: boolean, onError?: (message: string) => void, sourceFiles?: readonly SourceFile[]) => void;
1848
1877
  export class OperationCanceledException {
1849
1878
  }
1850
1879
  export interface CancellationToken {
@@ -1856,11 +1885,11 @@ declare namespace ts {
1856
1885
  /**
1857
1886
  * Get a list of root file names that were passed to a 'createProgram'
1858
1887
  */
1859
- getRootFileNames(): ReadonlyArray<string>;
1888
+ getRootFileNames(): readonly string[];
1860
1889
  /**
1861
1890
  * Get a list of files in the program
1862
1891
  */
1863
- getSourceFiles(): ReadonlyArray<SourceFile>;
1892
+ getSourceFiles(): readonly SourceFile[];
1864
1893
  /**
1865
1894
  * Emits the JavaScript and declaration files. If targetSourceFile is not specified, then
1866
1895
  * the JavaScript and declaration files will be produced for all the files in this program.
@@ -1872,26 +1901,35 @@ declare namespace ts {
1872
1901
  * will be invoked when writing the JavaScript and declaration files.
1873
1902
  */
1874
1903
  emit(targetSourceFile?: SourceFile, writeFile?: WriteFileCallback, cancellationToken?: CancellationToken, emitOnlyDtsFiles?: boolean, customTransformers?: CustomTransformers): EmitResult;
1875
- getOptionsDiagnostics(cancellationToken?: CancellationToken): ReadonlyArray<Diagnostic>;
1876
- getGlobalDiagnostics(cancellationToken?: CancellationToken): ReadonlyArray<Diagnostic>;
1877
- getSyntacticDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): ReadonlyArray<DiagnosticWithLocation>;
1904
+ getOptionsDiagnostics(cancellationToken?: CancellationToken): readonly Diagnostic[];
1905
+ getGlobalDiagnostics(cancellationToken?: CancellationToken): readonly Diagnostic[];
1906
+ getSyntacticDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): readonly DiagnosticWithLocation[];
1878
1907
  /** The first time this is called, it will return global diagnostics (no location). */
1879
- getSemanticDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): ReadonlyArray<Diagnostic>;
1880
- getDeclarationDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): ReadonlyArray<DiagnosticWithLocation>;
1881
- getConfigFileParsingDiagnostics(): ReadonlyArray<Diagnostic>;
1908
+ getSemanticDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): readonly Diagnostic[];
1909
+ getDeclarationDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): readonly DiagnosticWithLocation[];
1910
+ getConfigFileParsingDiagnostics(): readonly Diagnostic[];
1882
1911
  /**
1883
1912
  * Gets a type checker that can be used to semantically analyze source files in the program.
1884
1913
  */
1885
1914
  getTypeChecker(): TypeChecker;
1915
+ getNodeCount(): number;
1916
+ getIdentifierCount(): number;
1917
+ getSymbolCount(): number;
1918
+ getTypeCount(): number;
1919
+ getRelationCacheSizes(): {
1920
+ assignable: number;
1921
+ identity: number;
1922
+ subtype: number;
1923
+ };
1886
1924
  isSourceFileFromExternalLibrary(file: SourceFile): boolean;
1887
1925
  isSourceFileDefaultLibrary(file: SourceFile): boolean;
1888
- getProjectReferences(): ReadonlyArray<ProjectReference> | undefined;
1889
- getResolvedProjectReferences(): ReadonlyArray<ResolvedProjectReference | undefined> | undefined;
1926
+ getProjectReferences(): readonly ProjectReference[] | undefined;
1927
+ getResolvedProjectReferences(): readonly (ResolvedProjectReference | undefined)[] | undefined;
1890
1928
  }
1891
1929
  export interface ResolvedProjectReference {
1892
1930
  commandLine: ParsedCommandLine;
1893
1931
  sourceFile: SourceFile;
1894
- references?: ReadonlyArray<ResolvedProjectReference | undefined>;
1932
+ references?: readonly (ResolvedProjectReference | undefined)[];
1895
1933
  }
1896
1934
  export type CustomTransformerFactory = (context: TransformationContext) => CustomTransformer;
1897
1935
  export interface CustomTransformer {
@@ -1925,12 +1963,15 @@ declare namespace ts {
1925
1963
  Success = 0,
1926
1964
  DiagnosticsPresent_OutputsSkipped = 1,
1927
1965
  DiagnosticsPresent_OutputsGenerated = 2,
1928
- InvalidProject_OutputsSkipped = 3
1966
+ InvalidProject_OutputsSkipped = 3,
1967
+ ProjectReferenceCycle_OutputsSkipped = 4,
1968
+ /** @deprecated Use ProjectReferenceCycle_OutputsSkipped instead. */
1969
+ ProjectReferenceCycle_OutputsSkupped = 4
1929
1970
  }
1930
1971
  export interface EmitResult {
1931
1972
  emitSkipped: boolean;
1932
1973
  /** Contains declaration emit diagnostics */
1933
- diagnostics: ReadonlyArray<Diagnostic>;
1974
+ diagnostics: readonly Diagnostic[];
1934
1975
  emittedFiles?: string[];
1935
1976
  }
1936
1977
  export interface TypeChecker {
@@ -1939,7 +1980,7 @@ declare namespace ts {
1939
1980
  getPropertiesOfType(type: Type): Symbol[];
1940
1981
  getPropertyOfType(type: Type, propertyName: string): Symbol | undefined;
1941
1982
  getIndexInfoOfType(type: Type, kind: IndexKind): IndexInfo | undefined;
1942
- getSignaturesOfType(type: Type, kind: SignatureKind): ReadonlyArray<Signature>;
1983
+ getSignaturesOfType(type: Type, kind: SignatureKind): readonly Signature[];
1943
1984
  getIndexTypeOfType(type: Type, kind: IndexKind): Type | undefined;
1944
1985
  getBaseTypes(type: InterfaceType): BaseType[];
1945
1986
  getBaseTypeOfLiteralType(type: Type): Type;
@@ -1947,6 +1988,7 @@ declare namespace ts {
1947
1988
  getReturnTypeOfSignature(signature: Signature): Type;
1948
1989
  getNullableType(type: Type, flags: TypeFlags): Type;
1949
1990
  getNonNullableType(type: Type): Type;
1991
+ getTypeArguments(type: TypeReference): readonly Type[];
1950
1992
  /** Note that the resulting nodes cannot be checked. */
1951
1993
  typeToTypeNode(type: Type, enclosingDeclaration?: Node, flags?: NodeBuilderFlags): TypeNode | undefined;
1952
1994
  /** Note that the resulting nodes cannot be checked. */
@@ -1993,7 +2035,7 @@ declare namespace ts {
1993
2035
  typePredicateToString(predicate: TypePredicate, enclosingDeclaration?: Node, flags?: TypeFormatFlags): string;
1994
2036
  getFullyQualifiedName(symbol: Symbol): string;
1995
2037
  getAugmentedPropertiesOfType(type: Type): Symbol[];
1996
- getRootSymbols(symbol: Symbol): ReadonlyArray<Symbol>;
2038
+ getRootSymbols(symbol: Symbol): readonly Symbol[];
1997
2039
  getContextualType(node: Expression): Type | undefined;
1998
2040
  /**
1999
2041
  * returns unknownSignature in the case of an error.
@@ -2088,21 +2130,39 @@ declare namespace ts {
2088
2130
  }
2089
2131
  export enum TypePredicateKind {
2090
2132
  This = 0,
2091
- Identifier = 1
2133
+ Identifier = 1,
2134
+ AssertsThis = 2,
2135
+ AssertsIdentifier = 3
2092
2136
  }
2093
2137
  export interface TypePredicateBase {
2094
2138
  kind: TypePredicateKind;
2095
- type: Type;
2139
+ type: Type | undefined;
2096
2140
  }
2097
2141
  export interface ThisTypePredicate extends TypePredicateBase {
2098
2142
  kind: TypePredicateKind.This;
2143
+ parameterName: undefined;
2144
+ parameterIndex: undefined;
2145
+ type: Type;
2099
2146
  }
2100
2147
  export interface IdentifierTypePredicate extends TypePredicateBase {
2101
2148
  kind: TypePredicateKind.Identifier;
2102
2149
  parameterName: string;
2103
2150
  parameterIndex: number;
2151
+ type: Type;
2152
+ }
2153
+ export interface AssertsThisTypePredicate extends TypePredicateBase {
2154
+ kind: TypePredicateKind.AssertsThis;
2155
+ parameterName: undefined;
2156
+ parameterIndex: undefined;
2157
+ type: Type | undefined;
2104
2158
  }
2105
- export type TypePredicate = IdentifierTypePredicate | ThisTypePredicate;
2159
+ export interface AssertsIdentifierTypePredicate extends TypePredicateBase {
2160
+ kind: TypePredicateKind.AssertsIdentifier;
2161
+ parameterName: string;
2162
+ parameterIndex: number;
2163
+ type: Type | undefined;
2164
+ }
2165
+ export type TypePredicate = ThisTypePredicate | IdentifierTypePredicate | AssertsThisTypePredicate | AssertsIdentifierTypePredicate;
2106
2166
  export enum SymbolFlags {
2107
2167
  None = 0,
2108
2168
  FunctionScopedVariable = 1,
@@ -2278,7 +2338,7 @@ declare namespace ts {
2278
2338
  symbol: Symbol;
2279
2339
  pattern?: DestructuringPattern;
2280
2340
  aliasSymbol?: Symbol;
2281
- aliasTypeArguments?: ReadonlyArray<Type>;
2341
+ aliasTypeArguments?: readonly Type[];
2282
2342
  }
2283
2343
  export interface LiteralType extends Type {
2284
2344
  value: string | number | PseudoBigInt;
@@ -2330,7 +2390,7 @@ declare namespace ts {
2330
2390
  localTypeParameters: TypeParameter[] | undefined;
2331
2391
  thisType: TypeParameter | undefined;
2332
2392
  }
2333
- export type BaseType = ObjectType | IntersectionType;
2393
+ export type BaseType = ObjectType | IntersectionType | TypeVariable;
2334
2394
  export interface InterfaceTypeWithDeclaredMembers extends InterfaceType {
2335
2395
  declaredProperties: Symbol[];
2336
2396
  declaredCallSignatures: Signature[];
@@ -2350,7 +2410,9 @@ declare namespace ts {
2350
2410
  */
2351
2411
  export interface TypeReference extends ObjectType {
2352
2412
  target: GenericType;
2353
- typeArguments?: ReadonlyArray<Type>;
2413
+ node?: TypeReferenceNode | ArrayTypeNode | TupleTypeNode;
2414
+ }
2415
+ export interface DeferredTypeReference extends TypeReference {
2354
2416
  }
2355
2417
  export interface GenericType extends InterfaceType, TypeReference {
2356
2418
  }
@@ -2420,8 +2482,8 @@ declare namespace ts {
2420
2482
  }
2421
2483
  export interface Signature {
2422
2484
  declaration?: SignatureDeclaration | JSDocSignature;
2423
- typeParameters?: ReadonlyArray<TypeParameter>;
2424
- parameters: ReadonlyArray<Symbol>;
2485
+ typeParameters?: readonly TypeParameter[];
2486
+ parameters: readonly Symbol[];
2425
2487
  }
2426
2488
  export enum IndexKind {
2427
2489
  String = 0,
@@ -2529,6 +2591,7 @@ declare namespace ts {
2529
2591
  emitDeclarationOnly?: boolean;
2530
2592
  declarationDir?: string;
2531
2593
  disableSizeLimit?: boolean;
2594
+ disableSourceOfProjectReferenceRedirect?: boolean;
2532
2595
  downlevelIteration?: boolean;
2533
2596
  emitBOM?: boolean;
2534
2597
  emitDecoratorMetadata?: boolean;
@@ -2595,9 +2658,14 @@ declare namespace ts {
2595
2658
  /** Paths used to compute primary types search locations */
2596
2659
  typeRoots?: string[];
2597
2660
  esModuleInterop?: boolean;
2661
+ useDefineForClassFields?: boolean;
2598
2662
  [option: string]: CompilerOptionsValue | TsConfigSourceFile | undefined;
2599
2663
  }
2600
2664
  export interface TypeAcquisition {
2665
+ /**
2666
+ * @deprecated typingOptions.enableAutoDiscovery
2667
+ * Use typeAcquisition.enable instead.
2668
+ */
2601
2669
  enableAutoDiscovery?: boolean;
2602
2670
  enable?: boolean;
2603
2671
  include?: string[];
@@ -2664,7 +2732,7 @@ declare namespace ts {
2664
2732
  options: CompilerOptions;
2665
2733
  typeAcquisition?: TypeAcquisition;
2666
2734
  fileNames: string[];
2667
- projectReferences?: ReadonlyArray<ProjectReference>;
2735
+ projectReferences?: readonly ProjectReference[];
2668
2736
  raw?: any;
2669
2737
  errors: Diagnostic[];
2670
2738
  wildcardDirectories?: MapLike<WatchDirectoryFlags>;
@@ -2679,12 +2747,12 @@ declare namespace ts {
2679
2747
  wildcardDirectories: MapLike<WatchDirectoryFlags>;
2680
2748
  }
2681
2749
  export interface CreateProgramOptions {
2682
- rootNames: ReadonlyArray<string>;
2750
+ rootNames: readonly string[];
2683
2751
  options: CompilerOptions;
2684
- projectReferences?: ReadonlyArray<ProjectReference>;
2752
+ projectReferences?: readonly ProjectReference[];
2685
2753
  host?: CompilerHost;
2686
2754
  oldProgram?: Program;
2687
- configFileParsingDiagnostics?: ReadonlyArray<Diagnostic>;
2755
+ configFileParsingDiagnostics?: readonly Diagnostic[];
2688
2756
  }
2689
2757
  export interface ModuleResolutionHost {
2690
2758
  fileExists(fileName: string): boolean;
@@ -2765,7 +2833,7 @@ declare namespace ts {
2765
2833
  }
2766
2834
  export interface ResolvedTypeReferenceDirectiveWithFailedLookupLocations {
2767
2835
  readonly resolvedTypeReferenceDirective: ResolvedTypeReferenceDirective | undefined;
2768
- readonly failedLookupLocations: ReadonlyArray<string>;
2836
+ readonly failedLookupLocations: readonly string[];
2769
2837
  }
2770
2838
  export interface CompilerHost extends ModuleResolutionHost {
2771
2839
  getSourceFile(fileName: string, languageVersion: ScriptTarget, onError?: (message: string) => void, shouldCreateNewSourceFile?: boolean): SourceFile | undefined;
@@ -2778,7 +2846,7 @@ declare namespace ts {
2778
2846
  getCanonicalFileName(fileName: string): string;
2779
2847
  useCaseSensitiveFileNames(): boolean;
2780
2848
  getNewLine(): string;
2781
- readDirectory?(rootDir: string, extensions: ReadonlyArray<string>, excludes: ReadonlyArray<string> | undefined, includes: ReadonlyArray<string>, depth?: number): string[];
2849
+ readDirectory?(rootDir: string, extensions: readonly string[], excludes: readonly string[] | undefined, includes: readonly string[], depth?: number): string[];
2782
2850
  resolveModuleNames?(moduleNames: string[], containingFile: string, reusedNames: string[] | undefined, redirectedReference: ResolvedProjectReference | undefined, options: CompilerOptions): (ResolvedModule | undefined)[];
2783
2851
  /**
2784
2852
  * This method is a companion for 'resolveModuleNames' and is used to resolve 'types' references to actual type declaration files
@@ -3016,6 +3084,11 @@ declare namespace ts {
3016
3084
  directoryExists?(directoryName: string): boolean;
3017
3085
  getCurrentDirectory?(): string;
3018
3086
  }
3087
+ export interface ModuleSpecifierResolutionHost extends GetEffectiveTypeRootsHost {
3088
+ useCaseSensitiveFileNames?(): boolean;
3089
+ fileExists?(path: string): boolean;
3090
+ readFile?(path: string): string | undefined;
3091
+ }
3019
3092
  export interface TextSpan {
3020
3093
  start: number;
3021
3094
  length: number;
@@ -3098,6 +3171,7 @@ declare namespace ts {
3098
3171
  readonly disableSuggestions?: boolean;
3099
3172
  readonly quotePreference?: "auto" | "double" | "single";
3100
3173
  readonly includeCompletionsForModuleExports?: boolean;
3174
+ readonly includeAutomaticOptionalChainCompletions?: boolean;
3101
3175
  readonly includeCompletionsWithInsertText?: boolean;
3102
3176
  readonly importModuleSpecifierPreference?: "relative" | "non-relative";
3103
3177
  /** Determines whether we import `foo/index.ts` as "foo", "foo/index", or "foo/index.js" */
@@ -3144,7 +3218,7 @@ declare namespace ts {
3144
3218
  getExecutingFilePath(): string;
3145
3219
  getCurrentDirectory(): string;
3146
3220
  getDirectories(path: string): string[];
3147
- readDirectory(path: string, extensions?: ReadonlyArray<string>, exclude?: ReadonlyArray<string>, include?: ReadonlyArray<string>, depth?: number): string[];
3221
+ readDirectory(path: string, extensions?: readonly string[], exclude?: readonly string[], include?: readonly string[], depth?: number): string[];
3148
3222
  getModifiedTime?(path: string): Date | undefined;
3149
3223
  setModifiedTime?(path: string, time: Date): void;
3150
3224
  deleteFile?(path: string): void;
@@ -3192,6 +3266,7 @@ declare namespace ts {
3192
3266
  scanJsxAttributeValue(): SyntaxKind;
3193
3267
  reScanJsxToken(): JsxTokenSyntaxKind;
3194
3268
  reScanLessThanToken(): SyntaxKind;
3269
+ reScanQuestionToken(): SyntaxKind;
3195
3270
  scanJsxToken(): JsxTokenSyntaxKind;
3196
3271
  scanJsDocToken(): JSDocSyntaxKind;
3197
3272
  scan(): SyntaxKind;
@@ -3229,7 +3304,7 @@ declare namespace ts {
3229
3304
  }
3230
3305
  declare namespace ts {
3231
3306
  function isExternalModuleNameRelative(moduleName: string): boolean;
3232
- function sortAndDeduplicateDiagnostics<T extends Diagnostic>(diagnostics: ReadonlyArray<T>): SortedReadonlyArray<T>;
3307
+ function sortAndDeduplicateDiagnostics<T extends Diagnostic>(diagnostics: readonly T[]): SortedReadonlyArray<T>;
3233
3308
  }
3234
3309
  declare namespace ts {
3235
3310
  function getDefaultLibFileName(options: CompilerOptions): string;
@@ -3258,7 +3333,7 @@ declare namespace ts {
3258
3333
  * This function will then merge those changes into a single change range valid between V1 and
3259
3334
  * Vn.
3260
3335
  */
3261
- function collapseTextChangeRangesAcrossMultipleVersions(changes: ReadonlyArray<TextChangeRange>): TextChangeRange;
3336
+ function collapseTextChangeRangesAcrossMultipleVersions(changes: readonly TextChangeRange[]): TextChangeRange;
3262
3337
  function getTypeParameterOwner(d: Declaration): Declaration | undefined;
3263
3338
  type ParameterPropertyDeclaration = ParameterDeclaration & {
3264
3339
  parent: ConstructorDeclaration;
@@ -3330,7 +3405,7 @@ declare namespace ts {
3330
3405
  *
3331
3406
  * For binding patterns, parameter tags are matched by position.
3332
3407
  */
3333
- function getJSDocParameterTags(param: ParameterDeclaration): ReadonlyArray<JSDocParameterTag>;
3408
+ function getJSDocParameterTags(param: ParameterDeclaration): readonly JSDocParameterTag[];
3334
3409
  /**
3335
3410
  * Gets the JSDoc type parameter tags for the node if present.
3336
3411
  *
@@ -3341,7 +3416,7 @@ declare namespace ts {
3341
3416
  * node are returned first, so in the previous example, the template
3342
3417
  * tag on the containing function expression would be first.
3343
3418
  */
3344
- function getJSDocTypeParameterTags(param: TypeParameterDeclaration): ReadonlyArray<JSDocTemplateTag>;
3419
+ function getJSDocTypeParameterTags(param: TypeParameterDeclaration): readonly JSDocTemplateTag[];
3345
3420
  /**
3346
3421
  * Return true if the node has JSDoc parameter tags.
3347
3422
  *
@@ -3383,14 +3458,14 @@ declare namespace ts {
3383
3458
  */
3384
3459
  function getJSDocReturnType(node: Node): TypeNode | undefined;
3385
3460
  /** Get all JSDoc tags related to a node, including those on parent nodes. */
3386
- function getJSDocTags(node: Node): ReadonlyArray<JSDocTag>;
3461
+ function getJSDocTags(node: Node): readonly JSDocTag[];
3387
3462
  /** Gets all JSDoc tags of a specified kind, or undefined if not present. */
3388
- function getAllJSDocTagsOfKind(node: Node, kind: SyntaxKind): ReadonlyArray<JSDocTag>;
3463
+ function getAllJSDocTagsOfKind(node: Node, kind: SyntaxKind): readonly JSDocTag[];
3389
3464
  /**
3390
3465
  * Gets the effective type parameters. If the node was parsed in a
3391
3466
  * JavaScript file, gets the type parameters from the `@template` tag from JSDoc.
3392
3467
  */
3393
- function getEffectiveTypeParameterDeclarations(node: DeclarationWithTypeParameters): ReadonlyArray<TypeParameterDeclaration>;
3468
+ function getEffectiveTypeParameterDeclarations(node: DeclarationWithTypeParameters): readonly TypeParameterDeclaration[];
3394
3469
  function getEffectiveConstraintOfTypeParameter(node: TypeParameterDeclaration): TypeNode | undefined;
3395
3470
  }
3396
3471
  declare namespace ts {
@@ -3444,8 +3519,13 @@ declare namespace ts {
3444
3519
  function isArrayLiteralExpression(node: Node): node is ArrayLiteralExpression;
3445
3520
  function isObjectLiteralExpression(node: Node): node is ObjectLiteralExpression;
3446
3521
  function isPropertyAccessExpression(node: Node): node is PropertyAccessExpression;
3522
+ function isPropertyAccessChain(node: Node): node is PropertyAccessChain;
3447
3523
  function isElementAccessExpression(node: Node): node is ElementAccessExpression;
3524
+ function isElementAccessChain(node: Node): node is ElementAccessChain;
3448
3525
  function isCallExpression(node: Node): node is CallExpression;
3526
+ function isCallChain(node: Node): node is CallChain;
3527
+ function isOptionalChain(node: Node): node is PropertyAccessChain | ElementAccessChain | CallChain;
3528
+ function isNullishCoalesce(node: Node): boolean;
3449
3529
  function isNewExpression(node: Node): node is NewExpression;
3450
3530
  function isTaggedTemplateExpression(node: Node): node is TaggedTemplateExpression;
3451
3531
  function isTypeAssertion(node: Node): node is TypeAssertion;
@@ -3543,7 +3623,7 @@ declare namespace ts {
3543
3623
  function isUnparsedTextLike(node: Node): node is UnparsedTextLike;
3544
3624
  function isUnparsedNode(node: Node): node is UnparsedNode;
3545
3625
  function isJSDocTypeExpression(node: Node): node is JSDocTypeExpression;
3546
- function isJSDocAllType(node: JSDocAllType): node is JSDocAllType;
3626
+ function isJSDocAllType(node: Node): node is JSDocAllType;
3547
3627
  function isJSDocUnknownType(node: Node): node is JSDocUnknownType;
3548
3628
  function isJSDocNullableType(node: Node): node is JSDocNullableType;
3549
3629
  function isJSDocNonNullableType(node: Node): node is JSDocNonNullableType;
@@ -3643,7 +3723,7 @@ declare namespace ts {
3643
3723
  export {};
3644
3724
  }
3645
3725
  declare namespace ts {
3646
- export function parseCommandLine(commandLine: ReadonlyArray<string>, readFile?: (path: string) => string | undefined): ParsedCommandLine;
3726
+ export function parseCommandLine(commandLine: readonly string[], readFile?: (path: string) => string | undefined): ParsedCommandLine;
3647
3727
  export type DiagnosticReporter = (diagnostic: Diagnostic) => void;
3648
3728
  /**
3649
3729
  * Reports config file diagnostics
@@ -3697,7 +3777,7 @@ declare namespace ts {
3697
3777
  * @param basePath A root directory to resolve relative path entries in the config
3698
3778
  * file to. e.g. outDir
3699
3779
  */
3700
- export function parseJsonConfigFileContent(json: any, host: ParseConfigHost, basePath: string, existingOptions?: CompilerOptions, configFileName?: string, resolutionStack?: Path[], extraFileExtensions?: ReadonlyArray<FileExtensionInfo>, extendedConfigCache?: Map<ExtendedConfigCacheEntry>): ParsedCommandLine;
3780
+ export function parseJsonConfigFileContent(json: any, host: ParseConfigHost, basePath: string, existingOptions?: CompilerOptions, configFileName?: string, resolutionStack?: Path[], extraFileExtensions?: readonly FileExtensionInfo[], extendedConfigCache?: Map<ExtendedConfigCacheEntry>): ParsedCommandLine;
3701
3781
  /**
3702
3782
  * Parse the contents of a config file (tsconfig.json).
3703
3783
  * @param jsonNode The contents of the config file to parse
@@ -3705,7 +3785,7 @@ declare namespace ts {
3705
3785
  * @param basePath A root directory to resolve relative path entries in the config
3706
3786
  * file to. e.g. outDir
3707
3787
  */
3708
- export function parseJsonSourceFileConfigFileContent(sourceFile: TsConfigSourceFile, host: ParseConfigHost, basePath: string, existingOptions?: CompilerOptions, configFileName?: string, resolutionStack?: Path[], extraFileExtensions?: ReadonlyArray<FileExtensionInfo>, extendedConfigCache?: Map<ExtendedConfigCacheEntry>): ParsedCommandLine;
3788
+ export function parseJsonSourceFileConfigFileContent(sourceFile: TsConfigSourceFile, host: ParseConfigHost, basePath: string, existingOptions?: CompilerOptions, configFileName?: string, resolutionStack?: Path[], extraFileExtensions?: readonly FileExtensionInfo[], extendedConfigCache?: Map<ExtendedConfigCacheEntry>): ParsedCommandLine;
3709
3789
  export interface ParsedTsconfig {
3710
3790
  raw: any;
3711
3791
  options?: CompilerOptions;
@@ -3771,7 +3851,7 @@ declare namespace ts {
3771
3851
  function classicNameResolver(moduleName: string, containingFile: string, compilerOptions: CompilerOptions, host: ModuleResolutionHost, cache?: NonRelativeModuleNameResolutionCache, redirectedReference?: ResolvedProjectReference): ResolvedModuleWithFailedLookupLocations;
3772
3852
  }
3773
3853
  declare namespace ts {
3774
- function createNodeArray<T extends Node>(elements?: ReadonlyArray<T>, hasTrailingComma?: boolean): NodeArray<T>;
3854
+ function createNodeArray<T extends Node>(elements?: readonly T[], hasTrailingComma?: boolean): NodeArray<T>;
3775
3855
  /** If a node is passed, creates a string literal whose source text is read from a source node during emit. */
3776
3856
  function createLiteral(value: string | StringLiteral | NoSubstitutionTemplateLiteral | NumericLiteral | Identifier): StringLiteral;
3777
3857
  function createLiteral(value: number | PseudoBigInt): NumericLiteral;
@@ -3809,62 +3889,64 @@ declare namespace ts {
3809
3889
  function updateComputedPropertyName(node: ComputedPropertyName, expression: Expression): ComputedPropertyName;
3810
3890
  function createTypeParameterDeclaration(name: string | Identifier, constraint?: TypeNode, defaultType?: TypeNode): TypeParameterDeclaration;
3811
3891
  function updateTypeParameterDeclaration(node: TypeParameterDeclaration, name: Identifier, constraint: TypeNode | undefined, defaultType: TypeNode | undefined): TypeParameterDeclaration;
3812
- function createParameter(decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, dotDotDotToken: DotDotDotToken | undefined, name: string | BindingName, questionToken?: QuestionToken, type?: TypeNode, initializer?: Expression): ParameterDeclaration;
3813
- function updateParameter(node: ParameterDeclaration, decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, dotDotDotToken: DotDotDotToken | undefined, name: string | BindingName, questionToken: QuestionToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): ParameterDeclaration;
3892
+ function createParameter(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, dotDotDotToken: DotDotDotToken | undefined, name: string | BindingName, questionToken?: QuestionToken, type?: TypeNode, initializer?: Expression): ParameterDeclaration;
3893
+ function updateParameter(node: ParameterDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, dotDotDotToken: DotDotDotToken | undefined, name: string | BindingName, questionToken: QuestionToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): ParameterDeclaration;
3814
3894
  function createDecorator(expression: Expression): Decorator;
3815
3895
  function updateDecorator(node: Decorator, expression: Expression): Decorator;
3816
- function createPropertySignature(modifiers: ReadonlyArray<Modifier> | undefined, name: PropertyName | string, questionToken: QuestionToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): PropertySignature;
3817
- function updatePropertySignature(node: PropertySignature, modifiers: ReadonlyArray<Modifier> | undefined, name: PropertyName, questionToken: QuestionToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): PropertySignature;
3818
- function createProperty(decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, name: string | PropertyName, questionOrExclamationToken: QuestionToken | ExclamationToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): PropertyDeclaration;
3819
- function updateProperty(node: PropertyDeclaration, decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, name: string | PropertyName, questionOrExclamationToken: QuestionToken | ExclamationToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): PropertyDeclaration;
3820
- function createMethodSignature(typeParameters: ReadonlyArray<TypeParameterDeclaration> | undefined, parameters: ReadonlyArray<ParameterDeclaration>, type: TypeNode | undefined, name: string | PropertyName, questionToken: QuestionToken | undefined): MethodSignature;
3896
+ function createPropertySignature(modifiers: readonly Modifier[] | undefined, name: PropertyName | string, questionToken: QuestionToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): PropertySignature;
3897
+ function updatePropertySignature(node: PropertySignature, modifiers: readonly Modifier[] | undefined, name: PropertyName, questionToken: QuestionToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): PropertySignature;
3898
+ function createProperty(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: string | PropertyName, questionOrExclamationToken: QuestionToken | ExclamationToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): PropertyDeclaration;
3899
+ function updateProperty(node: PropertyDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: string | PropertyName, questionOrExclamationToken: QuestionToken | ExclamationToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): PropertyDeclaration;
3900
+ function createMethodSignature(typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, name: string | PropertyName, questionToken: QuestionToken | undefined): MethodSignature;
3821
3901
  function updateMethodSignature(node: MethodSignature, typeParameters: NodeArray<TypeParameterDeclaration> | undefined, parameters: NodeArray<ParameterDeclaration>, type: TypeNode | undefined, name: PropertyName, questionToken: QuestionToken | undefined): MethodSignature;
3822
- function createMethod(decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, asteriskToken: AsteriskToken | undefined, name: string | PropertyName, questionToken: QuestionToken | undefined, typeParameters: ReadonlyArray<TypeParameterDeclaration> | undefined, parameters: ReadonlyArray<ParameterDeclaration>, type: TypeNode | undefined, body: Block | undefined): MethodDeclaration;
3823
- function updateMethod(node: MethodDeclaration, decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, asteriskToken: AsteriskToken | undefined, name: PropertyName, questionToken: QuestionToken | undefined, typeParameters: ReadonlyArray<TypeParameterDeclaration> | undefined, parameters: ReadonlyArray<ParameterDeclaration>, type: TypeNode | undefined, body: Block | undefined): MethodDeclaration;
3824
- function createConstructor(decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, parameters: ReadonlyArray<ParameterDeclaration>, body: Block | undefined): ConstructorDeclaration;
3825
- function updateConstructor(node: ConstructorDeclaration, decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, parameters: ReadonlyArray<ParameterDeclaration>, body: Block | undefined): ConstructorDeclaration;
3826
- function createGetAccessor(decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, name: string | PropertyName, parameters: ReadonlyArray<ParameterDeclaration>, type: TypeNode | undefined, body: Block | undefined): GetAccessorDeclaration;
3827
- function updateGetAccessor(node: GetAccessorDeclaration, decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, name: PropertyName, parameters: ReadonlyArray<ParameterDeclaration>, type: TypeNode | undefined, body: Block | undefined): GetAccessorDeclaration;
3828
- function createSetAccessor(decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, name: string | PropertyName, parameters: ReadonlyArray<ParameterDeclaration>, body: Block | undefined): SetAccessorDeclaration;
3829
- function updateSetAccessor(node: SetAccessorDeclaration, decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, name: PropertyName, parameters: ReadonlyArray<ParameterDeclaration>, body: Block | undefined): SetAccessorDeclaration;
3830
- function createCallSignature(typeParameters: ReadonlyArray<TypeParameterDeclaration> | undefined, parameters: ReadonlyArray<ParameterDeclaration>, type: TypeNode | undefined): CallSignatureDeclaration;
3902
+ function createMethod(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, asteriskToken: AsteriskToken | undefined, name: string | PropertyName, questionToken: QuestionToken | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: Block | undefined): MethodDeclaration;
3903
+ function updateMethod(node: MethodDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, asteriskToken: AsteriskToken | undefined, name: PropertyName, questionToken: QuestionToken | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: Block | undefined): MethodDeclaration;
3904
+ function createConstructor(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, parameters: readonly ParameterDeclaration[], body: Block | undefined): ConstructorDeclaration;
3905
+ function updateConstructor(node: ConstructorDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, parameters: readonly ParameterDeclaration[], body: Block | undefined): ConstructorDeclaration;
3906
+ function createGetAccessor(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: string | PropertyName, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: Block | undefined): GetAccessorDeclaration;
3907
+ function updateGetAccessor(node: GetAccessorDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: PropertyName, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: Block | undefined): GetAccessorDeclaration;
3908
+ function createSetAccessor(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: string | PropertyName, parameters: readonly ParameterDeclaration[], body: Block | undefined): SetAccessorDeclaration;
3909
+ function updateSetAccessor(node: SetAccessorDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: PropertyName, parameters: readonly ParameterDeclaration[], body: Block | undefined): SetAccessorDeclaration;
3910
+ function createCallSignature(typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined): CallSignatureDeclaration;
3831
3911
  function updateCallSignature(node: CallSignatureDeclaration, typeParameters: NodeArray<TypeParameterDeclaration> | undefined, parameters: NodeArray<ParameterDeclaration>, type: TypeNode | undefined): CallSignatureDeclaration;
3832
- function createConstructSignature(typeParameters: ReadonlyArray<TypeParameterDeclaration> | undefined, parameters: ReadonlyArray<ParameterDeclaration>, type: TypeNode | undefined): ConstructSignatureDeclaration;
3912
+ function createConstructSignature(typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined): ConstructSignatureDeclaration;
3833
3913
  function updateConstructSignature(node: ConstructSignatureDeclaration, typeParameters: NodeArray<TypeParameterDeclaration> | undefined, parameters: NodeArray<ParameterDeclaration>, type: TypeNode | undefined): ConstructSignatureDeclaration;
3834
- function createIndexSignature(decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, parameters: ReadonlyArray<ParameterDeclaration>, type: TypeNode): IndexSignatureDeclaration;
3835
- function updateIndexSignature(node: IndexSignatureDeclaration, decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, parameters: ReadonlyArray<ParameterDeclaration>, type: TypeNode): IndexSignatureDeclaration;
3914
+ function createIndexSignature(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode): IndexSignatureDeclaration;
3915
+ function updateIndexSignature(node: IndexSignatureDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode): IndexSignatureDeclaration;
3836
3916
  function createKeywordTypeNode(kind: KeywordTypeNode["kind"]): KeywordTypeNode;
3837
3917
  function createTypePredicateNode(parameterName: Identifier | ThisTypeNode | string, type: TypeNode): TypePredicateNode;
3918
+ function createTypePredicateNodeWithModifier(assertsModifier: AssertsToken | undefined, parameterName: Identifier | ThisTypeNode | string, type: TypeNode | undefined): TypePredicateNode;
3838
3919
  function updateTypePredicateNode(node: TypePredicateNode, parameterName: Identifier | ThisTypeNode, type: TypeNode): TypePredicateNode;
3839
- function createTypeReferenceNode(typeName: string | EntityName, typeArguments: ReadonlyArray<TypeNode> | undefined): TypeReferenceNode;
3920
+ function updateTypePredicateNodeWithModifier(node: TypePredicateNode, assertsModifier: AssertsToken | undefined, parameterName: Identifier | ThisTypeNode, type: TypeNode | undefined): TypePredicateNode;
3921
+ function createTypeReferenceNode(typeName: string | EntityName, typeArguments: readonly TypeNode[] | undefined): TypeReferenceNode;
3840
3922
  function updateTypeReferenceNode(node: TypeReferenceNode, typeName: EntityName, typeArguments: NodeArray<TypeNode> | undefined): TypeReferenceNode;
3841
- function createFunctionTypeNode(typeParameters: ReadonlyArray<TypeParameterDeclaration> | undefined, parameters: ReadonlyArray<ParameterDeclaration>, type: TypeNode | undefined): FunctionTypeNode;
3923
+ function createFunctionTypeNode(typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined): FunctionTypeNode;
3842
3924
  function updateFunctionTypeNode(node: FunctionTypeNode, typeParameters: NodeArray<TypeParameterDeclaration> | undefined, parameters: NodeArray<ParameterDeclaration>, type: TypeNode | undefined): FunctionTypeNode;
3843
- function createConstructorTypeNode(typeParameters: ReadonlyArray<TypeParameterDeclaration> | undefined, parameters: ReadonlyArray<ParameterDeclaration>, type: TypeNode | undefined): ConstructorTypeNode;
3925
+ function createConstructorTypeNode(typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined): ConstructorTypeNode;
3844
3926
  function updateConstructorTypeNode(node: ConstructorTypeNode, typeParameters: NodeArray<TypeParameterDeclaration> | undefined, parameters: NodeArray<ParameterDeclaration>, type: TypeNode | undefined): ConstructorTypeNode;
3845
3927
  function createTypeQueryNode(exprName: EntityName): TypeQueryNode;
3846
3928
  function updateTypeQueryNode(node: TypeQueryNode, exprName: EntityName): TypeQueryNode;
3847
- function createTypeLiteralNode(members: ReadonlyArray<TypeElement> | undefined): TypeLiteralNode;
3929
+ function createTypeLiteralNode(members: readonly TypeElement[] | undefined): TypeLiteralNode;
3848
3930
  function updateTypeLiteralNode(node: TypeLiteralNode, members: NodeArray<TypeElement>): TypeLiteralNode;
3849
3931
  function createArrayTypeNode(elementType: TypeNode): ArrayTypeNode;
3850
3932
  function updateArrayTypeNode(node: ArrayTypeNode, elementType: TypeNode): ArrayTypeNode;
3851
- function createTupleTypeNode(elementTypes: ReadonlyArray<TypeNode>): TupleTypeNode;
3852
- function updateTupleTypeNode(node: TupleTypeNode, elementTypes: ReadonlyArray<TypeNode>): TupleTypeNode;
3933
+ function createTupleTypeNode(elementTypes: readonly TypeNode[]): TupleTypeNode;
3934
+ function updateTupleTypeNode(node: TupleTypeNode, elementTypes: readonly TypeNode[]): TupleTypeNode;
3853
3935
  function createOptionalTypeNode(type: TypeNode): OptionalTypeNode;
3854
3936
  function updateOptionalTypeNode(node: OptionalTypeNode, type: TypeNode): OptionalTypeNode;
3855
3937
  function createRestTypeNode(type: TypeNode): RestTypeNode;
3856
3938
  function updateRestTypeNode(node: RestTypeNode, type: TypeNode): RestTypeNode;
3857
- function createUnionTypeNode(types: ReadonlyArray<TypeNode>): UnionTypeNode;
3939
+ function createUnionTypeNode(types: readonly TypeNode[]): UnionTypeNode;
3858
3940
  function updateUnionTypeNode(node: UnionTypeNode, types: NodeArray<TypeNode>): UnionTypeNode;
3859
- function createIntersectionTypeNode(types: ReadonlyArray<TypeNode>): IntersectionTypeNode;
3941
+ function createIntersectionTypeNode(types: readonly TypeNode[]): IntersectionTypeNode;
3860
3942
  function updateIntersectionTypeNode(node: IntersectionTypeNode, types: NodeArray<TypeNode>): IntersectionTypeNode;
3861
- function createUnionOrIntersectionTypeNode(kind: SyntaxKind.UnionType | SyntaxKind.IntersectionType, types: ReadonlyArray<TypeNode>): UnionOrIntersectionTypeNode;
3943
+ function createUnionOrIntersectionTypeNode(kind: SyntaxKind.UnionType | SyntaxKind.IntersectionType, types: readonly TypeNode[]): UnionOrIntersectionTypeNode;
3862
3944
  function createConditionalTypeNode(checkType: TypeNode, extendsType: TypeNode, trueType: TypeNode, falseType: TypeNode): ConditionalTypeNode;
3863
3945
  function updateConditionalTypeNode(node: ConditionalTypeNode, checkType: TypeNode, extendsType: TypeNode, trueType: TypeNode, falseType: TypeNode): ConditionalTypeNode;
3864
3946
  function createInferTypeNode(typeParameter: TypeParameterDeclaration): InferTypeNode;
3865
3947
  function updateInferTypeNode(node: InferTypeNode, typeParameter: TypeParameterDeclaration): InferTypeNode;
3866
- function createImportTypeNode(argument: TypeNode, qualifier?: EntityName, typeArguments?: ReadonlyArray<TypeNode>, isTypeOf?: boolean): ImportTypeNode;
3867
- function updateImportTypeNode(node: ImportTypeNode, argument: TypeNode, qualifier?: EntityName, typeArguments?: ReadonlyArray<TypeNode>, isTypeOf?: boolean): ImportTypeNode;
3948
+ function createImportTypeNode(argument: TypeNode, qualifier?: EntityName, typeArguments?: readonly TypeNode[], isTypeOf?: boolean): ImportTypeNode;
3949
+ function updateImportTypeNode(node: ImportTypeNode, argument: TypeNode, qualifier?: EntityName, typeArguments?: readonly TypeNode[], isTypeOf?: boolean): ImportTypeNode;
3868
3950
  function createParenthesizedType(type: TypeNode): ParenthesizedTypeNode;
3869
3951
  function updateParenthesizedType(node: ParenthesizedTypeNode, type: TypeNode): ParenthesizedTypeNode;
3870
3952
  function createThisTypeNode(): ThisTypeNode;
@@ -3877,36 +3959,42 @@ declare namespace ts {
3877
3959
  function updateMappedTypeNode(node: MappedTypeNode, readonlyToken: ReadonlyToken | PlusToken | MinusToken | undefined, typeParameter: TypeParameterDeclaration, questionToken: QuestionToken | PlusToken | MinusToken | undefined, type: TypeNode | undefined): MappedTypeNode;
3878
3960
  function createLiteralTypeNode(literal: LiteralTypeNode["literal"]): LiteralTypeNode;
3879
3961
  function updateLiteralTypeNode(node: LiteralTypeNode, literal: LiteralTypeNode["literal"]): LiteralTypeNode;
3880
- function createObjectBindingPattern(elements: ReadonlyArray<BindingElement>): ObjectBindingPattern;
3881
- function updateObjectBindingPattern(node: ObjectBindingPattern, elements: ReadonlyArray<BindingElement>): ObjectBindingPattern;
3882
- function createArrayBindingPattern(elements: ReadonlyArray<ArrayBindingElement>): ArrayBindingPattern;
3883
- function updateArrayBindingPattern(node: ArrayBindingPattern, elements: ReadonlyArray<ArrayBindingElement>): ArrayBindingPattern;
3962
+ function createObjectBindingPattern(elements: readonly BindingElement[]): ObjectBindingPattern;
3963
+ function updateObjectBindingPattern(node: ObjectBindingPattern, elements: readonly BindingElement[]): ObjectBindingPattern;
3964
+ function createArrayBindingPattern(elements: readonly ArrayBindingElement[]): ArrayBindingPattern;
3965
+ function updateArrayBindingPattern(node: ArrayBindingPattern, elements: readonly ArrayBindingElement[]): ArrayBindingPattern;
3884
3966
  function createBindingElement(dotDotDotToken: DotDotDotToken | undefined, propertyName: string | PropertyName | undefined, name: string | BindingName, initializer?: Expression): BindingElement;
3885
3967
  function updateBindingElement(node: BindingElement, dotDotDotToken: DotDotDotToken | undefined, propertyName: PropertyName | undefined, name: BindingName, initializer: Expression | undefined): BindingElement;
3886
- function createArrayLiteral(elements?: ReadonlyArray<Expression>, multiLine?: boolean): ArrayLiteralExpression;
3887
- function updateArrayLiteral(node: ArrayLiteralExpression, elements: ReadonlyArray<Expression>): ArrayLiteralExpression;
3888
- function createObjectLiteral(properties?: ReadonlyArray<ObjectLiteralElementLike>, multiLine?: boolean): ObjectLiteralExpression;
3889
- function updateObjectLiteral(node: ObjectLiteralExpression, properties: ReadonlyArray<ObjectLiteralElementLike>): ObjectLiteralExpression;
3968
+ function createArrayLiteral(elements?: readonly Expression[], multiLine?: boolean): ArrayLiteralExpression;
3969
+ function updateArrayLiteral(node: ArrayLiteralExpression, elements: readonly Expression[]): ArrayLiteralExpression;
3970
+ function createObjectLiteral(properties?: readonly ObjectLiteralElementLike[], multiLine?: boolean): ObjectLiteralExpression;
3971
+ function updateObjectLiteral(node: ObjectLiteralExpression, properties: readonly ObjectLiteralElementLike[]): ObjectLiteralExpression;
3890
3972
  function createPropertyAccess(expression: Expression, name: string | Identifier): PropertyAccessExpression;
3891
3973
  function updatePropertyAccess(node: PropertyAccessExpression, expression: Expression, name: Identifier): PropertyAccessExpression;
3974
+ function createPropertyAccessChain(expression: Expression, questionDotToken: QuestionDotToken | undefined, name: string | Identifier): PropertyAccessChain;
3975
+ function updatePropertyAccessChain(node: PropertyAccessChain, expression: Expression, questionDotToken: QuestionDotToken | undefined, name: Identifier): PropertyAccessChain;
3892
3976
  function createElementAccess(expression: Expression, index: number | Expression): ElementAccessExpression;
3893
3977
  function updateElementAccess(node: ElementAccessExpression, expression: Expression, argumentExpression: Expression): ElementAccessExpression;
3894
- function createCall(expression: Expression, typeArguments: ReadonlyArray<TypeNode> | undefined, argumentsArray: ReadonlyArray<Expression> | undefined): CallExpression;
3895
- function updateCall(node: CallExpression, expression: Expression, typeArguments: ReadonlyArray<TypeNode> | undefined, argumentsArray: ReadonlyArray<Expression>): CallExpression;
3896
- function createNew(expression: Expression, typeArguments: ReadonlyArray<TypeNode> | undefined, argumentsArray: ReadonlyArray<Expression> | undefined): NewExpression;
3897
- function updateNew(node: NewExpression, expression: Expression, typeArguments: ReadonlyArray<TypeNode> | undefined, argumentsArray: ReadonlyArray<Expression> | undefined): NewExpression;
3978
+ function createElementAccessChain(expression: Expression, questionDotToken: QuestionDotToken | undefined, index: number | Expression): ElementAccessChain;
3979
+ function updateElementAccessChain(node: ElementAccessChain, expression: Expression, questionDotToken: QuestionDotToken | undefined, argumentExpression: Expression): ElementAccessChain;
3980
+ function createCall(expression: Expression, typeArguments: readonly TypeNode[] | undefined, argumentsArray: readonly Expression[] | undefined): CallExpression;
3981
+ function updateCall(node: CallExpression, expression: Expression, typeArguments: readonly TypeNode[] | undefined, argumentsArray: readonly Expression[]): CallExpression;
3982
+ function createCallChain(expression: Expression, questionDotToken: QuestionDotToken | undefined, typeArguments: readonly TypeNode[] | undefined, argumentsArray: readonly Expression[] | undefined): CallChain;
3983
+ function updateCallChain(node: CallChain, expression: Expression, questionDotToken: QuestionDotToken | undefined, typeArguments: readonly TypeNode[] | undefined, argumentsArray: readonly Expression[]): CallChain;
3984
+ function createNew(expression: Expression, typeArguments: readonly TypeNode[] | undefined, argumentsArray: readonly Expression[] | undefined): NewExpression;
3985
+ function updateNew(node: NewExpression, expression: Expression, typeArguments: readonly TypeNode[] | undefined, argumentsArray: readonly Expression[] | undefined): NewExpression;
3898
3986
  /** @deprecated */ function createTaggedTemplate(tag: Expression, template: TemplateLiteral): TaggedTemplateExpression;
3899
- function createTaggedTemplate(tag: Expression, typeArguments: ReadonlyArray<TypeNode> | undefined, template: TemplateLiteral): TaggedTemplateExpression;
3987
+ function createTaggedTemplate(tag: Expression, typeArguments: readonly TypeNode[] | undefined, template: TemplateLiteral): TaggedTemplateExpression;
3900
3988
  /** @deprecated */ function updateTaggedTemplate(node: TaggedTemplateExpression, tag: Expression, template: TemplateLiteral): TaggedTemplateExpression;
3901
- function updateTaggedTemplate(node: TaggedTemplateExpression, tag: Expression, typeArguments: ReadonlyArray<TypeNode> | undefined, template: TemplateLiteral): TaggedTemplateExpression;
3989
+ function updateTaggedTemplate(node: TaggedTemplateExpression, tag: Expression, typeArguments: readonly TypeNode[] | undefined, template: TemplateLiteral): TaggedTemplateExpression;
3902
3990
  function createTypeAssertion(type: TypeNode, expression: Expression): TypeAssertion;
3903
3991
  function updateTypeAssertion(node: TypeAssertion, type: TypeNode, expression: Expression): TypeAssertion;
3904
3992
  function createParen(expression: Expression): ParenthesizedExpression;
3905
3993
  function updateParen(node: ParenthesizedExpression, expression: Expression): ParenthesizedExpression;
3906
- function createFunctionExpression(modifiers: ReadonlyArray<Modifier> | undefined, asteriskToken: AsteriskToken | undefined, name: string | Identifier | undefined, typeParameters: ReadonlyArray<TypeParameterDeclaration> | undefined, parameters: ReadonlyArray<ParameterDeclaration> | undefined, type: TypeNode | undefined, body: Block): FunctionExpression;
3907
- function updateFunctionExpression(node: FunctionExpression, modifiers: ReadonlyArray<Modifier> | undefined, asteriskToken: AsteriskToken | undefined, name: Identifier | undefined, typeParameters: ReadonlyArray<TypeParameterDeclaration> | undefined, parameters: ReadonlyArray<ParameterDeclaration>, type: TypeNode | undefined, body: Block): FunctionExpression;
3908
- function createArrowFunction(modifiers: ReadonlyArray<Modifier> | undefined, typeParameters: ReadonlyArray<TypeParameterDeclaration> | undefined, parameters: ReadonlyArray<ParameterDeclaration>, type: TypeNode | undefined, equalsGreaterThanToken: EqualsGreaterThanToken | undefined, body: ConciseBody): ArrowFunction;
3909
- function updateArrowFunction(node: ArrowFunction, modifiers: ReadonlyArray<Modifier> | undefined, typeParameters: ReadonlyArray<TypeParameterDeclaration> | undefined, parameters: ReadonlyArray<ParameterDeclaration>, type: TypeNode | undefined, equalsGreaterThanToken: Token<SyntaxKind.EqualsGreaterThanToken>, body: ConciseBody): ArrowFunction;
3994
+ function createFunctionExpression(modifiers: readonly Modifier[] | undefined, asteriskToken: AsteriskToken | undefined, name: string | Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[] | undefined, type: TypeNode | undefined, body: Block): FunctionExpression;
3995
+ function updateFunctionExpression(node: FunctionExpression, modifiers: readonly Modifier[] | undefined, asteriskToken: AsteriskToken | undefined, name: Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: Block): FunctionExpression;
3996
+ function createArrowFunction(modifiers: readonly Modifier[] | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, equalsGreaterThanToken: EqualsGreaterThanToken | undefined, body: ConciseBody): ArrowFunction;
3997
+ function updateArrowFunction(node: ArrowFunction, modifiers: readonly Modifier[] | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, equalsGreaterThanToken: Token<SyntaxKind.EqualsGreaterThanToken>, body: ConciseBody): ArrowFunction;
3910
3998
  function createDelete(expression: Expression): DeleteExpression;
3911
3999
  function updateDelete(node: DeleteExpression, expression: Expression): DeleteExpression;
3912
4000
  function createTypeOf(expression: Expression): TypeOfExpression;
@@ -3924,8 +4012,8 @@ declare namespace ts {
3924
4012
  /** @deprecated */ function createConditional(condition: Expression, whenTrue: Expression, whenFalse: Expression): ConditionalExpression;
3925
4013
  function createConditional(condition: Expression, questionToken: QuestionToken, whenTrue: Expression, colonToken: ColonToken, whenFalse: Expression): ConditionalExpression;
3926
4014
  function updateConditional(node: ConditionalExpression, condition: Expression, questionToken: Token<SyntaxKind.QuestionToken>, whenTrue: Expression, colonToken: Token<SyntaxKind.ColonToken>, whenFalse: Expression): ConditionalExpression;
3927
- function createTemplateExpression(head: TemplateHead, templateSpans: ReadonlyArray<TemplateSpan>): TemplateExpression;
3928
- function updateTemplateExpression(node: TemplateExpression, head: TemplateHead, templateSpans: ReadonlyArray<TemplateSpan>): TemplateExpression;
4015
+ function createTemplateExpression(head: TemplateHead, templateSpans: readonly TemplateSpan[]): TemplateExpression;
4016
+ function updateTemplateExpression(node: TemplateExpression, head: TemplateHead, templateSpans: readonly TemplateSpan[]): TemplateExpression;
3929
4017
  function createTemplateHead(text: string, rawText?: string): TemplateHead;
3930
4018
  function createTemplateMiddle(text: string, rawText?: string): TemplateMiddle;
3931
4019
  function createTemplateTail(text: string, rawText?: string): TemplateTail;
@@ -3935,11 +4023,11 @@ declare namespace ts {
3935
4023
  function updateYield(node: YieldExpression, asteriskToken: AsteriskToken | undefined, expression: Expression): YieldExpression;
3936
4024
  function createSpread(expression: Expression): SpreadElement;
3937
4025
  function updateSpread(node: SpreadElement, expression: Expression): SpreadElement;
3938
- function createClassExpression(modifiers: ReadonlyArray<Modifier> | undefined, name: string | Identifier | undefined, typeParameters: ReadonlyArray<TypeParameterDeclaration> | undefined, heritageClauses: ReadonlyArray<HeritageClause> | undefined, members: ReadonlyArray<ClassElement>): ClassExpression;
3939
- function updateClassExpression(node: ClassExpression, modifiers: ReadonlyArray<Modifier> | undefined, name: Identifier | undefined, typeParameters: ReadonlyArray<TypeParameterDeclaration> | undefined, heritageClauses: ReadonlyArray<HeritageClause> | undefined, members: ReadonlyArray<ClassElement>): ClassExpression;
4026
+ function createClassExpression(modifiers: readonly Modifier[] | undefined, name: string | Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly ClassElement[]): ClassExpression;
4027
+ function updateClassExpression(node: ClassExpression, modifiers: readonly Modifier[] | undefined, name: Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly ClassElement[]): ClassExpression;
3940
4028
  function createOmittedExpression(): OmittedExpression;
3941
- function createExpressionWithTypeArguments(typeArguments: ReadonlyArray<TypeNode> | undefined, expression: Expression): ExpressionWithTypeArguments;
3942
- function updateExpressionWithTypeArguments(node: ExpressionWithTypeArguments, typeArguments: ReadonlyArray<TypeNode> | undefined, expression: Expression): ExpressionWithTypeArguments;
4029
+ function createExpressionWithTypeArguments(typeArguments: readonly TypeNode[] | undefined, expression: Expression): ExpressionWithTypeArguments;
4030
+ function updateExpressionWithTypeArguments(node: ExpressionWithTypeArguments, typeArguments: readonly TypeNode[] | undefined, expression: Expression): ExpressionWithTypeArguments;
3943
4031
  function createAsExpression(expression: Expression, type: TypeNode): AsExpression;
3944
4032
  function updateAsExpression(node: AsExpression, expression: Expression, type: TypeNode): AsExpression;
3945
4033
  function createNonNullExpression(expression: Expression): NonNullExpression;
@@ -3949,10 +4037,10 @@ declare namespace ts {
3949
4037
  function createTemplateSpan(expression: Expression, literal: TemplateMiddle | TemplateTail): TemplateSpan;
3950
4038
  function updateTemplateSpan(node: TemplateSpan, expression: Expression, literal: TemplateMiddle | TemplateTail): TemplateSpan;
3951
4039
  function createSemicolonClassElement(): SemicolonClassElement;
3952
- function createBlock(statements: ReadonlyArray<Statement>, multiLine?: boolean): Block;
3953
- function updateBlock(node: Block, statements: ReadonlyArray<Statement>): Block;
3954
- function createVariableStatement(modifiers: ReadonlyArray<Modifier> | undefined, declarationList: VariableDeclarationList | ReadonlyArray<VariableDeclaration>): VariableStatement;
3955
- function updateVariableStatement(node: VariableStatement, modifiers: ReadonlyArray<Modifier> | undefined, declarationList: VariableDeclarationList): VariableStatement;
4040
+ function createBlock(statements: readonly Statement[], multiLine?: boolean): Block;
4041
+ function updateBlock(node: Block, statements: readonly Statement[]): Block;
4042
+ function createVariableStatement(modifiers: readonly Modifier[] | undefined, declarationList: VariableDeclarationList | readonly VariableDeclaration[]): VariableStatement;
4043
+ function updateVariableStatement(node: VariableStatement, modifiers: readonly Modifier[] | undefined, declarationList: VariableDeclarationList): VariableStatement;
3956
4044
  function createEmptyStatement(): EmptyStatement;
3957
4045
  function createExpressionStatement(expression: Expression): ExpressionStatement;
3958
4046
  function updateExpressionStatement(node: ExpressionStatement, expression: Expression): ExpressionStatement;
@@ -3991,76 +4079,76 @@ declare namespace ts {
3991
4079
  function createDebuggerStatement(): DebuggerStatement;
3992
4080
  function createVariableDeclaration(name: string | BindingName, type?: TypeNode, initializer?: Expression): VariableDeclaration;
3993
4081
  function updateVariableDeclaration(node: VariableDeclaration, name: BindingName, type: TypeNode | undefined, initializer: Expression | undefined): VariableDeclaration;
3994
- function createVariableDeclarationList(declarations: ReadonlyArray<VariableDeclaration>, flags?: NodeFlags): VariableDeclarationList;
3995
- function updateVariableDeclarationList(node: VariableDeclarationList, declarations: ReadonlyArray<VariableDeclaration>): VariableDeclarationList;
3996
- function createFunctionDeclaration(decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, asteriskToken: AsteriskToken | undefined, name: string | Identifier | undefined, typeParameters: ReadonlyArray<TypeParameterDeclaration> | undefined, parameters: ReadonlyArray<ParameterDeclaration>, type: TypeNode | undefined, body: Block | undefined): FunctionDeclaration;
3997
- function updateFunctionDeclaration(node: FunctionDeclaration, decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, asteriskToken: AsteriskToken | undefined, name: Identifier | undefined, typeParameters: ReadonlyArray<TypeParameterDeclaration> | undefined, parameters: ReadonlyArray<ParameterDeclaration>, type: TypeNode | undefined, body: Block | undefined): FunctionDeclaration;
3998
- function createClassDeclaration(decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, name: string | Identifier | undefined, typeParameters: ReadonlyArray<TypeParameterDeclaration> | undefined, heritageClauses: ReadonlyArray<HeritageClause> | undefined, members: ReadonlyArray<ClassElement>): ClassDeclaration;
3999
- function updateClassDeclaration(node: ClassDeclaration, decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, name: Identifier | undefined, typeParameters: ReadonlyArray<TypeParameterDeclaration> | undefined, heritageClauses: ReadonlyArray<HeritageClause> | undefined, members: ReadonlyArray<ClassElement>): ClassDeclaration;
4000
- function createInterfaceDeclaration(decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, name: string | Identifier, typeParameters: ReadonlyArray<TypeParameterDeclaration> | undefined, heritageClauses: ReadonlyArray<HeritageClause> | undefined, members: ReadonlyArray<TypeElement>): InterfaceDeclaration;
4001
- function updateInterfaceDeclaration(node: InterfaceDeclaration, decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, name: Identifier, typeParameters: ReadonlyArray<TypeParameterDeclaration> | undefined, heritageClauses: ReadonlyArray<HeritageClause> | undefined, members: ReadonlyArray<TypeElement>): InterfaceDeclaration;
4002
- function createTypeAliasDeclaration(decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, name: string | Identifier, typeParameters: ReadonlyArray<TypeParameterDeclaration> | undefined, type: TypeNode): TypeAliasDeclaration;
4003
- function updateTypeAliasDeclaration(node: TypeAliasDeclaration, decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, name: Identifier, typeParameters: ReadonlyArray<TypeParameterDeclaration> | undefined, type: TypeNode): TypeAliasDeclaration;
4004
- function createEnumDeclaration(decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, name: string | Identifier, members: ReadonlyArray<EnumMember>): EnumDeclaration;
4005
- function updateEnumDeclaration(node: EnumDeclaration, decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, name: Identifier, members: ReadonlyArray<EnumMember>): EnumDeclaration;
4006
- function createModuleDeclaration(decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, name: ModuleName, body: ModuleBody | undefined, flags?: NodeFlags): ModuleDeclaration;
4007
- function updateModuleDeclaration(node: ModuleDeclaration, decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, name: ModuleName, body: ModuleBody | undefined): ModuleDeclaration;
4008
- function createModuleBlock(statements: ReadonlyArray<Statement>): ModuleBlock;
4009
- function updateModuleBlock(node: ModuleBlock, statements: ReadonlyArray<Statement>): ModuleBlock;
4010
- function createCaseBlock(clauses: ReadonlyArray<CaseOrDefaultClause>): CaseBlock;
4011
- function updateCaseBlock(node: CaseBlock, clauses: ReadonlyArray<CaseOrDefaultClause>): CaseBlock;
4082
+ function createVariableDeclarationList(declarations: readonly VariableDeclaration[], flags?: NodeFlags): VariableDeclarationList;
4083
+ function updateVariableDeclarationList(node: VariableDeclarationList, declarations: readonly VariableDeclaration[]): VariableDeclarationList;
4084
+ function createFunctionDeclaration(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, asteriskToken: AsteriskToken | undefined, name: string | Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: Block | undefined): FunctionDeclaration;
4085
+ function updateFunctionDeclaration(node: FunctionDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, asteriskToken: AsteriskToken | undefined, name: Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: Block | undefined): FunctionDeclaration;
4086
+ function createClassDeclaration(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: string | Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly ClassElement[]): ClassDeclaration;
4087
+ function updateClassDeclaration(node: ClassDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly ClassElement[]): ClassDeclaration;
4088
+ function createInterfaceDeclaration(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: string | Identifier, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly TypeElement[]): InterfaceDeclaration;
4089
+ function updateInterfaceDeclaration(node: InterfaceDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: Identifier, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly TypeElement[]): InterfaceDeclaration;
4090
+ function createTypeAliasDeclaration(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: string | Identifier, typeParameters: readonly TypeParameterDeclaration[] | undefined, type: TypeNode): TypeAliasDeclaration;
4091
+ function updateTypeAliasDeclaration(node: TypeAliasDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: Identifier, typeParameters: readonly TypeParameterDeclaration[] | undefined, type: TypeNode): TypeAliasDeclaration;
4092
+ function createEnumDeclaration(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: string | Identifier, members: readonly EnumMember[]): EnumDeclaration;
4093
+ function updateEnumDeclaration(node: EnumDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: Identifier, members: readonly EnumMember[]): EnumDeclaration;
4094
+ function createModuleDeclaration(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: ModuleName, body: ModuleBody | undefined, flags?: NodeFlags): ModuleDeclaration;
4095
+ function updateModuleDeclaration(node: ModuleDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: ModuleName, body: ModuleBody | undefined): ModuleDeclaration;
4096
+ function createModuleBlock(statements: readonly Statement[]): ModuleBlock;
4097
+ function updateModuleBlock(node: ModuleBlock, statements: readonly Statement[]): ModuleBlock;
4098
+ function createCaseBlock(clauses: readonly CaseOrDefaultClause[]): CaseBlock;
4099
+ function updateCaseBlock(node: CaseBlock, clauses: readonly CaseOrDefaultClause[]): CaseBlock;
4012
4100
  function createNamespaceExportDeclaration(name: string | Identifier): NamespaceExportDeclaration;
4013
4101
  function updateNamespaceExportDeclaration(node: NamespaceExportDeclaration, name: Identifier): NamespaceExportDeclaration;
4014
- function createImportEqualsDeclaration(decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, name: string | Identifier, moduleReference: ModuleReference): ImportEqualsDeclaration;
4015
- function updateImportEqualsDeclaration(node: ImportEqualsDeclaration, decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, name: Identifier, moduleReference: ModuleReference): ImportEqualsDeclaration;
4016
- function createImportDeclaration(decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression): ImportDeclaration;
4017
- function updateImportDeclaration(node: ImportDeclaration, decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression): ImportDeclaration;
4102
+ function createImportEqualsDeclaration(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: string | Identifier, moduleReference: ModuleReference): ImportEqualsDeclaration;
4103
+ function updateImportEqualsDeclaration(node: ImportEqualsDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, name: Identifier, moduleReference: ModuleReference): ImportEqualsDeclaration;
4104
+ function createImportDeclaration(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression): ImportDeclaration;
4105
+ function updateImportDeclaration(node: ImportDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression): ImportDeclaration;
4018
4106
  function createImportClause(name: Identifier | undefined, namedBindings: NamedImportBindings | undefined): ImportClause;
4019
4107
  function updateImportClause(node: ImportClause, name: Identifier | undefined, namedBindings: NamedImportBindings | undefined): ImportClause;
4020
4108
  function createNamespaceImport(name: Identifier): NamespaceImport;
4021
4109
  function updateNamespaceImport(node: NamespaceImport, name: Identifier): NamespaceImport;
4022
- function createNamedImports(elements: ReadonlyArray<ImportSpecifier>): NamedImports;
4023
- function updateNamedImports(node: NamedImports, elements: ReadonlyArray<ImportSpecifier>): NamedImports;
4110
+ function createNamedImports(elements: readonly ImportSpecifier[]): NamedImports;
4111
+ function updateNamedImports(node: NamedImports, elements: readonly ImportSpecifier[]): NamedImports;
4024
4112
  function createImportSpecifier(propertyName: Identifier | undefined, name: Identifier): ImportSpecifier;
4025
4113
  function updateImportSpecifier(node: ImportSpecifier, propertyName: Identifier | undefined, name: Identifier): ImportSpecifier;
4026
- function createExportAssignment(decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, isExportEquals: boolean | undefined, expression: Expression): ExportAssignment;
4027
- function updateExportAssignment(node: ExportAssignment, decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, expression: Expression): ExportAssignment;
4028
- function createExportDeclaration(decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, exportClause: NamedExports | undefined, moduleSpecifier?: Expression): ExportDeclaration;
4029
- function updateExportDeclaration(node: ExportDeclaration, decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, exportClause: NamedExports | undefined, moduleSpecifier: Expression | undefined): ExportDeclaration;
4030
- function createNamedExports(elements: ReadonlyArray<ExportSpecifier>): NamedExports;
4031
- function updateNamedExports(node: NamedExports, elements: ReadonlyArray<ExportSpecifier>): NamedExports;
4114
+ function createExportAssignment(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, isExportEquals: boolean | undefined, expression: Expression): ExportAssignment;
4115
+ function updateExportAssignment(node: ExportAssignment, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, expression: Expression): ExportAssignment;
4116
+ function createExportDeclaration(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, exportClause: NamedExports | undefined, moduleSpecifier?: Expression): ExportDeclaration;
4117
+ function updateExportDeclaration(node: ExportDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, exportClause: NamedExports | undefined, moduleSpecifier: Expression | undefined): ExportDeclaration;
4118
+ function createNamedExports(elements: readonly ExportSpecifier[]): NamedExports;
4119
+ function updateNamedExports(node: NamedExports, elements: readonly ExportSpecifier[]): NamedExports;
4032
4120
  function createExportSpecifier(propertyName: string | Identifier | undefined, name: string | Identifier): ExportSpecifier;
4033
4121
  function updateExportSpecifier(node: ExportSpecifier, propertyName: Identifier | undefined, name: Identifier): ExportSpecifier;
4034
4122
  function createExternalModuleReference(expression: Expression): ExternalModuleReference;
4035
4123
  function updateExternalModuleReference(node: ExternalModuleReference, expression: Expression): ExternalModuleReference;
4036
- function createJsxElement(openingElement: JsxOpeningElement, children: ReadonlyArray<JsxChild>, closingElement: JsxClosingElement): JsxElement;
4037
- function updateJsxElement(node: JsxElement, openingElement: JsxOpeningElement, children: ReadonlyArray<JsxChild>, closingElement: JsxClosingElement): JsxElement;
4038
- function createJsxSelfClosingElement(tagName: JsxTagNameExpression, typeArguments: ReadonlyArray<TypeNode> | undefined, attributes: JsxAttributes): JsxSelfClosingElement;
4039
- function updateJsxSelfClosingElement(node: JsxSelfClosingElement, tagName: JsxTagNameExpression, typeArguments: ReadonlyArray<TypeNode> | undefined, attributes: JsxAttributes): JsxSelfClosingElement;
4040
- function createJsxOpeningElement(tagName: JsxTagNameExpression, typeArguments: ReadonlyArray<TypeNode> | undefined, attributes: JsxAttributes): JsxOpeningElement;
4041
- function updateJsxOpeningElement(node: JsxOpeningElement, tagName: JsxTagNameExpression, typeArguments: ReadonlyArray<TypeNode> | undefined, attributes: JsxAttributes): JsxOpeningElement;
4124
+ function createJsxElement(openingElement: JsxOpeningElement, children: readonly JsxChild[], closingElement: JsxClosingElement): JsxElement;
4125
+ function updateJsxElement(node: JsxElement, openingElement: JsxOpeningElement, children: readonly JsxChild[], closingElement: JsxClosingElement): JsxElement;
4126
+ function createJsxSelfClosingElement(tagName: JsxTagNameExpression, typeArguments: readonly TypeNode[] | undefined, attributes: JsxAttributes): JsxSelfClosingElement;
4127
+ function updateJsxSelfClosingElement(node: JsxSelfClosingElement, tagName: JsxTagNameExpression, typeArguments: readonly TypeNode[] | undefined, attributes: JsxAttributes): JsxSelfClosingElement;
4128
+ function createJsxOpeningElement(tagName: JsxTagNameExpression, typeArguments: readonly TypeNode[] | undefined, attributes: JsxAttributes): JsxOpeningElement;
4129
+ function updateJsxOpeningElement(node: JsxOpeningElement, tagName: JsxTagNameExpression, typeArguments: readonly TypeNode[] | undefined, attributes: JsxAttributes): JsxOpeningElement;
4042
4130
  function createJsxClosingElement(tagName: JsxTagNameExpression): JsxClosingElement;
4043
4131
  function updateJsxClosingElement(node: JsxClosingElement, tagName: JsxTagNameExpression): JsxClosingElement;
4044
- function createJsxFragment(openingFragment: JsxOpeningFragment, children: ReadonlyArray<JsxChild>, closingFragment: JsxClosingFragment): JsxFragment;
4132
+ function createJsxFragment(openingFragment: JsxOpeningFragment, children: readonly JsxChild[], closingFragment: JsxClosingFragment): JsxFragment;
4045
4133
  function createJsxText(text: string, containsOnlyTriviaWhiteSpaces?: boolean): JsxText;
4046
4134
  function updateJsxText(node: JsxText, text: string, containsOnlyTriviaWhiteSpaces?: boolean): JsxText;
4047
4135
  function createJsxOpeningFragment(): JsxOpeningFragment;
4048
4136
  function createJsxJsxClosingFragment(): JsxClosingFragment;
4049
- function updateJsxFragment(node: JsxFragment, openingFragment: JsxOpeningFragment, children: ReadonlyArray<JsxChild>, closingFragment: JsxClosingFragment): JsxFragment;
4137
+ function updateJsxFragment(node: JsxFragment, openingFragment: JsxOpeningFragment, children: readonly JsxChild[], closingFragment: JsxClosingFragment): JsxFragment;
4050
4138
  function createJsxAttribute(name: Identifier, initializer: StringLiteral | JsxExpression): JsxAttribute;
4051
4139
  function updateJsxAttribute(node: JsxAttribute, name: Identifier, initializer: StringLiteral | JsxExpression): JsxAttribute;
4052
- function createJsxAttributes(properties: ReadonlyArray<JsxAttributeLike>): JsxAttributes;
4053
- function updateJsxAttributes(node: JsxAttributes, properties: ReadonlyArray<JsxAttributeLike>): JsxAttributes;
4140
+ function createJsxAttributes(properties: readonly JsxAttributeLike[]): JsxAttributes;
4141
+ function updateJsxAttributes(node: JsxAttributes, properties: readonly JsxAttributeLike[]): JsxAttributes;
4054
4142
  function createJsxSpreadAttribute(expression: Expression): JsxSpreadAttribute;
4055
4143
  function updateJsxSpreadAttribute(node: JsxSpreadAttribute, expression: Expression): JsxSpreadAttribute;
4056
4144
  function createJsxExpression(dotDotDotToken: DotDotDotToken | undefined, expression: Expression | undefined): JsxExpression;
4057
4145
  function updateJsxExpression(node: JsxExpression, expression: Expression | undefined): JsxExpression;
4058
- function createCaseClause(expression: Expression, statements: ReadonlyArray<Statement>): CaseClause;
4059
- function updateCaseClause(node: CaseClause, expression: Expression, statements: ReadonlyArray<Statement>): CaseClause;
4060
- function createDefaultClause(statements: ReadonlyArray<Statement>): DefaultClause;
4061
- function updateDefaultClause(node: DefaultClause, statements: ReadonlyArray<Statement>): DefaultClause;
4062
- function createHeritageClause(token: HeritageClause["token"], types: ReadonlyArray<ExpressionWithTypeArguments>): HeritageClause;
4063
- function updateHeritageClause(node: HeritageClause, types: ReadonlyArray<ExpressionWithTypeArguments>): HeritageClause;
4146
+ function createCaseClause(expression: Expression, statements: readonly Statement[]): CaseClause;
4147
+ function updateCaseClause(node: CaseClause, expression: Expression, statements: readonly Statement[]): CaseClause;
4148
+ function createDefaultClause(statements: readonly Statement[]): DefaultClause;
4149
+ function updateDefaultClause(node: DefaultClause, statements: readonly Statement[]): DefaultClause;
4150
+ function createHeritageClause(token: HeritageClause["token"], types: readonly ExpressionWithTypeArguments[]): HeritageClause;
4151
+ function updateHeritageClause(node: HeritageClause, types: readonly ExpressionWithTypeArguments[]): HeritageClause;
4064
4152
  function createCatchClause(variableDeclaration: string | VariableDeclaration | undefined, block: Block): CatchClause;
4065
4153
  function updateCatchClause(node: CatchClause, variableDeclaration: VariableDeclaration | undefined, block: Block): CatchClause;
4066
4154
  function createPropertyAssignment(name: string | PropertyName, initializer: Expression): PropertyAssignment;
@@ -4071,7 +4159,7 @@ declare namespace ts {
4071
4159
  function updateSpreadAssignment(node: SpreadAssignment, expression: Expression): SpreadAssignment;
4072
4160
  function createEnumMember(name: string | PropertyName, initializer?: Expression): EnumMember;
4073
4161
  function updateEnumMember(node: EnumMember, name: PropertyName, initializer: Expression | undefined): EnumMember;
4074
- function updateSourceFileNode(node: SourceFile, statements: ReadonlyArray<Statement>, isDeclarationFile?: boolean, referencedFiles?: SourceFile["referencedFiles"], typeReferences?: SourceFile["typeReferenceDirectives"], hasNoDefaultLib?: boolean, libReferences?: SourceFile["libReferenceDirectives"]): SourceFile;
4162
+ function updateSourceFileNode(node: SourceFile, statements: readonly Statement[], isDeclarationFile?: boolean, referencedFiles?: SourceFile["referencedFiles"], typeReferences?: SourceFile["typeReferenceDirectives"], hasNoDefaultLib?: boolean, libReferences?: SourceFile["libReferenceDirectives"]): SourceFile;
4075
4163
  /**
4076
4164
  * Creates a shallow, memberwise clone of a node for mutation.
4077
4165
  */
@@ -4093,20 +4181,20 @@ declare namespace ts {
4093
4181
  */
4094
4182
  function createPartiallyEmittedExpression(expression: Expression, original?: Node): PartiallyEmittedExpression;
4095
4183
  function updatePartiallyEmittedExpression(node: PartiallyEmittedExpression, expression: Expression): PartiallyEmittedExpression;
4096
- function createCommaList(elements: ReadonlyArray<Expression>): CommaListExpression;
4097
- function updateCommaList(node: CommaListExpression, elements: ReadonlyArray<Expression>): CommaListExpression;
4098
- function createBundle(sourceFiles: ReadonlyArray<SourceFile>, prepends?: ReadonlyArray<UnparsedSource | InputFiles>): Bundle;
4184
+ function createCommaList(elements: readonly Expression[]): CommaListExpression;
4185
+ function updateCommaList(node: CommaListExpression, elements: readonly Expression[]): CommaListExpression;
4186
+ function createBundle(sourceFiles: readonly SourceFile[], prepends?: readonly (UnparsedSource | InputFiles)[]): Bundle;
4099
4187
  function createUnparsedSourceFile(text: string): UnparsedSource;
4100
4188
  function createUnparsedSourceFile(inputFile: InputFiles, type: "js" | "dts", stripInternal?: boolean): UnparsedSource;
4101
4189
  function createUnparsedSourceFile(text: string, mapPath: string | undefined, map: string | undefined): UnparsedSource;
4102
4190
  function createInputFiles(javascriptText: string, declarationText: string): InputFiles;
4103
4191
  function createInputFiles(readFileText: (path: string) => string | undefined, javascriptPath: string, javascriptMapPath: string | undefined, declarationPath: string, declarationMapPath: string | undefined, buildInfoPath: string | undefined): InputFiles;
4104
4192
  function createInputFiles(javascriptText: string, declarationText: string, javascriptMapPath: string | undefined, javascriptMapText: string | undefined, declarationMapPath: string | undefined, declarationMapText: string | undefined): InputFiles;
4105
- function updateBundle(node: Bundle, sourceFiles: ReadonlyArray<SourceFile>, prepends?: ReadonlyArray<UnparsedSource | InputFiles>): Bundle;
4106
- function createImmediatelyInvokedFunctionExpression(statements: ReadonlyArray<Statement>): CallExpression;
4107
- function createImmediatelyInvokedFunctionExpression(statements: ReadonlyArray<Statement>, param: ParameterDeclaration, paramValue: Expression): CallExpression;
4108
- function createImmediatelyInvokedArrowFunction(statements: ReadonlyArray<Statement>): CallExpression;
4109
- function createImmediatelyInvokedArrowFunction(statements: ReadonlyArray<Statement>, param: ParameterDeclaration, paramValue: Expression): CallExpression;
4193
+ function updateBundle(node: Bundle, sourceFiles: readonly SourceFile[], prepends?: readonly (UnparsedSource | InputFiles)[]): Bundle;
4194
+ function createImmediatelyInvokedFunctionExpression(statements: readonly Statement[]): CallExpression;
4195
+ function createImmediatelyInvokedFunctionExpression(statements: readonly Statement[], param: ParameterDeclaration, paramValue: Expression): CallExpression;
4196
+ function createImmediatelyInvokedArrowFunction(statements: readonly Statement[]): CallExpression;
4197
+ function createImmediatelyInvokedArrowFunction(statements: readonly Statement[], param: ParameterDeclaration, paramValue: Expression): CallExpression;
4110
4198
  function createComma(left: Expression, right: Expression): Expression;
4111
4199
  function createLessThan(left: Expression, right: Expression): Expression;
4112
4200
  function createAssignment(left: ObjectLiteralExpression | ArrayLiteralExpression, right: Expression): DestructuringAssignment;
@@ -4118,6 +4206,7 @@ declare namespace ts {
4118
4206
  function createPostfixIncrement(operand: Expression): PostfixUnaryExpression;
4119
4207
  function createLogicalAnd(left: Expression, right: Expression): BinaryExpression;
4120
4208
  function createLogicalOr(left: Expression, right: Expression): BinaryExpression;
4209
+ function createNullishCoalesce(left: Expression, right: Expression): BinaryExpression;
4121
4210
  function createLogicalNot(operand: Expression): PrefixUnaryExpression;
4122
4211
  function createVoidZero(): VoidExpression;
4123
4212
  function createExportDefault(expression: Expression): ExportAssignment;
@@ -4174,7 +4263,7 @@ declare namespace ts {
4174
4263
  /**
4175
4264
  * Sets the constant value to emit for an expression.
4176
4265
  */
4177
- function setConstantValue(node: PropertyAccessExpression | ElementAccessExpression, value: string | number): PropertyAccessExpression | ElementAccessExpression;
4266
+ function setConstantValue(node: PropertyAccessExpression | ElementAccessExpression, value: string | number): ElementAccessExpression | PropertyAccessExpression;
4178
4267
  /**
4179
4268
  * Adds an EmitHelper to a node.
4180
4269
  */
@@ -4279,23 +4368,25 @@ declare namespace ts {
4279
4368
  function visitEachChild<T extends Node>(node: T | undefined, visitor: Visitor, context: TransformationContext, nodesVisitor?: typeof visitNodes, tokenVisitor?: Visitor): T | undefined;
4280
4369
  }
4281
4370
  declare namespace ts {
4371
+ function getTsBuildInfoEmitOutputFilePath(options: CompilerOptions): string | undefined;
4372
+ function getOutputFileNames(commandLine: ParsedCommandLine, inputFileName: string, ignoreCase: boolean): readonly string[];
4282
4373
  function createPrinter(printerOptions?: PrinterOptions, handlers?: PrintHandlers): Printer;
4283
4374
  }
4284
4375
  declare namespace ts {
4285
4376
  export function findConfigFile(searchPath: string, fileExists: (fileName: string) => boolean, configName?: string): string | undefined;
4286
4377
  export function resolveTripleslashReference(moduleName: string, containingFile: string): string;
4287
4378
  export function createCompilerHost(options: CompilerOptions, setParentNodes?: boolean): CompilerHost;
4288
- export function getPreEmitDiagnostics(program: Program, sourceFile?: SourceFile, cancellationToken?: CancellationToken): ReadonlyArray<Diagnostic>;
4379
+ export function getPreEmitDiagnostics(program: Program, sourceFile?: SourceFile, cancellationToken?: CancellationToken): readonly Diagnostic[];
4289
4380
  export interface FormatDiagnosticsHost {
4290
4381
  getCurrentDirectory(): string;
4291
4382
  getCanonicalFileName(fileName: string): string;
4292
4383
  getNewLine(): string;
4293
4384
  }
4294
- export function formatDiagnostics(diagnostics: ReadonlyArray<Diagnostic>, host: FormatDiagnosticsHost): string;
4385
+ export function formatDiagnostics(diagnostics: readonly Diagnostic[], host: FormatDiagnosticsHost): string;
4295
4386
  export function formatDiagnostic(diagnostic: Diagnostic, host: FormatDiagnosticsHost): string;
4296
- export function formatDiagnosticsWithColorAndContext(diagnostics: ReadonlyArray<Diagnostic>, host: FormatDiagnosticsHost): string;
4387
+ export function formatDiagnosticsWithColorAndContext(diagnostics: readonly Diagnostic[], host: FormatDiagnosticsHost): string;
4297
4388
  export function flattenDiagnosticMessageText(diag: string | DiagnosticMessageChain | undefined, newLine: string, indent?: number): string;
4298
- export function getConfigFileParsingDiagnostics(configFileParseResult: ParsedCommandLine): ReadonlyArray<Diagnostic>;
4389
+ export function getConfigFileParsingDiagnostics(configFileParseResult: ParsedCommandLine): readonly Diagnostic[];
4299
4390
  /**
4300
4391
  * Create a new 'Program' instance. A Program is an immutable collection of 'SourceFile's and a 'CompilerOptions'
4301
4392
  * that represent a compilation unit.
@@ -4321,7 +4412,7 @@ declare namespace ts {
4321
4412
  * @param configFileParsingDiagnostics - error during config file parsing
4322
4413
  * @returns A 'Program' object.
4323
4414
  */
4324
- export function createProgram(rootNames: ReadonlyArray<string>, options: CompilerOptions, host?: CompilerHost, oldProgram?: Program, configFileParsingDiagnostics?: ReadonlyArray<Diagnostic>): Program;
4415
+ export function createProgram(rootNames: readonly string[], options: CompilerOptions, host?: CompilerHost, oldProgram?: Program, configFileParsingDiagnostics?: readonly Diagnostic[]): Program;
4325
4416
  /** @deprecated */ export interface ResolveProjectReferencePathHost {
4326
4417
  fileExists(fileName: string): boolean;
4327
4418
  }
@@ -4383,31 +4474,31 @@ declare namespace ts {
4383
4474
  /**
4384
4475
  * Get a list of files in the program
4385
4476
  */
4386
- getSourceFiles(): ReadonlyArray<SourceFile>;
4477
+ getSourceFiles(): readonly SourceFile[];
4387
4478
  /**
4388
4479
  * Get the diagnostics for compiler options
4389
4480
  */
4390
- getOptionsDiagnostics(cancellationToken?: CancellationToken): ReadonlyArray<Diagnostic>;
4481
+ getOptionsDiagnostics(cancellationToken?: CancellationToken): readonly Diagnostic[];
4391
4482
  /**
4392
4483
  * Get the diagnostics that dont belong to any file
4393
4484
  */
4394
- getGlobalDiagnostics(cancellationToken?: CancellationToken): ReadonlyArray<Diagnostic>;
4485
+ getGlobalDiagnostics(cancellationToken?: CancellationToken): readonly Diagnostic[];
4395
4486
  /**
4396
4487
  * Get the diagnostics from config file parsing
4397
4488
  */
4398
- getConfigFileParsingDiagnostics(): ReadonlyArray<Diagnostic>;
4489
+ getConfigFileParsingDiagnostics(): readonly Diagnostic[];
4399
4490
  /**
4400
4491
  * Get the syntax diagnostics, for all source files if source file is not supplied
4401
4492
  */
4402
- getSyntacticDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): ReadonlyArray<Diagnostic>;
4493
+ getSyntacticDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): readonly Diagnostic[];
4403
4494
  /**
4404
4495
  * Get the declaration diagnostics, for all source files if source file is not supplied
4405
4496
  */
4406
- getDeclarationDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): ReadonlyArray<DiagnosticWithLocation>;
4497
+ getDeclarationDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): readonly DiagnosticWithLocation[];
4407
4498
  /**
4408
4499
  * Get all the dependencies of the file
4409
4500
  */
4410
- getAllDependencies(sourceFile: SourceFile): ReadonlyArray<string>;
4501
+ getAllDependencies(sourceFile: SourceFile): readonly string[];
4411
4502
  /**
4412
4503
  * Gets the semantic diagnostics from the program corresponding to this state of file (if provided) or whole program
4413
4504
  * The semantic diagnostics are cached and managed here
@@ -4416,7 +4507,7 @@ declare namespace ts {
4416
4507
  * In case of SemanticDiagnosticsBuilderProgram if the source file is not provided,
4417
4508
  * it will iterate through all the affected files, to ensure that cache stays valid and yet provide a way to get all semantic diagnostics
4418
4509
  */
4419
- getSemanticDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): ReadonlyArray<Diagnostic>;
4510
+ getSemanticDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): readonly Diagnostic[];
4420
4511
  /**
4421
4512
  * Emits the JavaScript and declaration files.
4422
4513
  * When targetSource file is specified, emits the files corresponding to that source file,
@@ -4442,7 +4533,7 @@ declare namespace ts {
4442
4533
  * Gets the semantic diagnostics from the program for the next affected file and caches it
4443
4534
  * Returns undefined if the iteration is complete
4444
4535
  */
4445
- getSemanticDiagnosticsOfNextAffectedFile(cancellationToken?: CancellationToken, ignoreSourceFile?: (sourceFile: SourceFile) => boolean): AffectedFileResult<ReadonlyArray<Diagnostic>>;
4536
+ getSemanticDiagnosticsOfNextAffectedFile(cancellationToken?: CancellationToken, ignoreSourceFile?: (sourceFile: SourceFile) => boolean): AffectedFileResult<readonly Diagnostic[]>;
4446
4537
  }
4447
4538
  /**
4448
4539
  * The builder that can handle the changes in program and iterate through changed file to emit the files
@@ -4459,19 +4550,19 @@ declare namespace ts {
4459
4550
  /**
4460
4551
  * Create the builder to manage semantic diagnostics and cache them
4461
4552
  */
4462
- function createSemanticDiagnosticsBuilderProgram(newProgram: Program, host: BuilderProgramHost, oldProgram?: SemanticDiagnosticsBuilderProgram, configFileParsingDiagnostics?: ReadonlyArray<Diagnostic>): SemanticDiagnosticsBuilderProgram;
4463
- function createSemanticDiagnosticsBuilderProgram(rootNames: ReadonlyArray<string> | undefined, options: CompilerOptions | undefined, host?: CompilerHost, oldProgram?: SemanticDiagnosticsBuilderProgram, configFileParsingDiagnostics?: ReadonlyArray<Diagnostic>, projectReferences?: ReadonlyArray<ProjectReference>): SemanticDiagnosticsBuilderProgram;
4553
+ function createSemanticDiagnosticsBuilderProgram(newProgram: Program, host: BuilderProgramHost, oldProgram?: SemanticDiagnosticsBuilderProgram, configFileParsingDiagnostics?: readonly Diagnostic[]): SemanticDiagnosticsBuilderProgram;
4554
+ function createSemanticDiagnosticsBuilderProgram(rootNames: readonly string[] | undefined, options: CompilerOptions | undefined, host?: CompilerHost, oldProgram?: SemanticDiagnosticsBuilderProgram, configFileParsingDiagnostics?: readonly Diagnostic[], projectReferences?: readonly ProjectReference[]): SemanticDiagnosticsBuilderProgram;
4464
4555
  /**
4465
4556
  * Create the builder that can handle the changes in program and iterate through changed files
4466
4557
  * to emit the those files and manage semantic diagnostics cache as well
4467
4558
  */
4468
- function createEmitAndSemanticDiagnosticsBuilderProgram(newProgram: Program, host: BuilderProgramHost, oldProgram?: EmitAndSemanticDiagnosticsBuilderProgram, configFileParsingDiagnostics?: ReadonlyArray<Diagnostic>): EmitAndSemanticDiagnosticsBuilderProgram;
4469
- function createEmitAndSemanticDiagnosticsBuilderProgram(rootNames: ReadonlyArray<string> | undefined, options: CompilerOptions | undefined, host?: CompilerHost, oldProgram?: EmitAndSemanticDiagnosticsBuilderProgram, configFileParsingDiagnostics?: ReadonlyArray<Diagnostic>, projectReferences?: ReadonlyArray<ProjectReference>): EmitAndSemanticDiagnosticsBuilderProgram;
4559
+ function createEmitAndSemanticDiagnosticsBuilderProgram(newProgram: Program, host: BuilderProgramHost, oldProgram?: EmitAndSemanticDiagnosticsBuilderProgram, configFileParsingDiagnostics?: readonly Diagnostic[]): EmitAndSemanticDiagnosticsBuilderProgram;
4560
+ function createEmitAndSemanticDiagnosticsBuilderProgram(rootNames: readonly string[] | undefined, options: CompilerOptions | undefined, host?: CompilerHost, oldProgram?: EmitAndSemanticDiagnosticsBuilderProgram, configFileParsingDiagnostics?: readonly Diagnostic[], projectReferences?: readonly ProjectReference[]): EmitAndSemanticDiagnosticsBuilderProgram;
4470
4561
  /**
4471
4562
  * Creates a builder thats just abstraction over program and can be used with watch
4472
4563
  */
4473
- function createAbstractBuilder(newProgram: Program, host: BuilderProgramHost, oldProgram?: BuilderProgram, configFileParsingDiagnostics?: ReadonlyArray<Diagnostic>): BuilderProgram;
4474
- function createAbstractBuilder(rootNames: ReadonlyArray<string> | undefined, options: CompilerOptions | undefined, host?: CompilerHost, oldProgram?: BuilderProgram, configFileParsingDiagnostics?: ReadonlyArray<Diagnostic>, projectReferences?: ReadonlyArray<ProjectReference>): BuilderProgram;
4564
+ function createAbstractBuilder(newProgram: Program, host: BuilderProgramHost, oldProgram?: BuilderProgram, configFileParsingDiagnostics?: readonly Diagnostic[]): BuilderProgram;
4565
+ function createAbstractBuilder(rootNames: readonly string[] | undefined, options: CompilerOptions | undefined, host?: CompilerHost, oldProgram?: BuilderProgram, configFileParsingDiagnostics?: readonly Diagnostic[], projectReferences?: readonly ProjectReference[]): BuilderProgram;
4475
4566
  }
4476
4567
  declare namespace ts {
4477
4568
  interface ReadBuildProgramHost {
@@ -4482,21 +4573,21 @@ declare namespace ts {
4482
4573
  function readBuilderProgram(compilerOptions: CompilerOptions, host: ReadBuildProgramHost): EmitAndSemanticDiagnosticsBuilderProgram | undefined;
4483
4574
  function createIncrementalCompilerHost(options: CompilerOptions, system?: System): CompilerHost;
4484
4575
  interface IncrementalProgramOptions<T extends BuilderProgram> {
4485
- rootNames: ReadonlyArray<string>;
4576
+ rootNames: readonly string[];
4486
4577
  options: CompilerOptions;
4487
- configFileParsingDiagnostics?: ReadonlyArray<Diagnostic>;
4488
- projectReferences?: ReadonlyArray<ProjectReference>;
4578
+ configFileParsingDiagnostics?: readonly Diagnostic[];
4579
+ projectReferences?: readonly ProjectReference[];
4489
4580
  host?: CompilerHost;
4490
4581
  createProgram?: CreateProgram<T>;
4491
4582
  }
4492
4583
  function createIncrementalProgram<T extends BuilderProgram = EmitAndSemanticDiagnosticsBuilderProgram>({ rootNames, options, configFileParsingDiagnostics, projectReferences, host, createProgram }: IncrementalProgramOptions<T>): T;
4493
- type WatchStatusReporter = (diagnostic: Diagnostic, newLine: string, options: CompilerOptions) => void;
4584
+ type WatchStatusReporter = (diagnostic: Diagnostic, newLine: string, options: CompilerOptions, errorCount?: number) => void;
4494
4585
  /** Create the program with rootNames and options, if they are undefined, oldProgram and new configFile diagnostics create new program */
4495
- type CreateProgram<T extends BuilderProgram> = (rootNames: ReadonlyArray<string> | undefined, options: CompilerOptions | undefined, host?: CompilerHost, oldProgram?: T, configFileParsingDiagnostics?: ReadonlyArray<Diagnostic>, projectReferences?: ReadonlyArray<ProjectReference> | undefined) => T;
4586
+ type CreateProgram<T extends BuilderProgram> = (rootNames: readonly string[] | undefined, options: CompilerOptions | undefined, host?: CompilerHost, oldProgram?: T, configFileParsingDiagnostics?: readonly Diagnostic[], projectReferences?: readonly ProjectReference[] | undefined) => T;
4496
4587
  /** Host that has watch functionality used in --watch mode */
4497
4588
  interface WatchHost {
4498
4589
  /** If provided, called with Diagnostic message that informs about change in watch status */
4499
- onWatchStatusChange?(diagnostic: Diagnostic, newLine: string, options: CompilerOptions): void;
4590
+ onWatchStatusChange?(diagnostic: Diagnostic, newLine: string, options: CompilerOptions, errorCount?: number): void;
4500
4591
  /** Used to watch changes in source files, missing files needed to update the program or config file */
4501
4592
  watchFile(path: string, callback: FileWatcherCallback, pollingInterval?: number): FileWatcher;
4502
4593
  /** Used to watch resolved module's failed lookup locations, config file specs, type roots where auto type reference directives are added */
@@ -4532,7 +4623,7 @@ declare namespace ts {
4532
4623
  /** If provided, used in resolutions as well as handling directory structure */
4533
4624
  getDirectories?(path: string): string[];
4534
4625
  /** If provided, used to cache and handle directory structure modifications */
4535
- readDirectory?(path: string, extensions?: ReadonlyArray<string>, exclude?: ReadonlyArray<string>, include?: ReadonlyArray<string>, depth?: number): string[];
4626
+ readDirectory?(path: string, extensions?: readonly string[], exclude?: readonly string[], include?: readonly string[], depth?: number): string[];
4536
4627
  /** Symbol links resolution */
4537
4628
  realpath?(path: string): string;
4538
4629
  /** If provided would be used to write log about compilation */
@@ -4557,7 +4648,7 @@ declare namespace ts {
4557
4648
  /** Compiler options */
4558
4649
  options: CompilerOptions;
4559
4650
  /** Project References */
4560
- projectReferences?: ReadonlyArray<ProjectReference>;
4651
+ projectReferences?: readonly ProjectReference[];
4561
4652
  }
4562
4653
  /**
4563
4654
  * Host to create watch with config file
@@ -4571,7 +4662,7 @@ declare namespace ts {
4571
4662
  * Used to generate source file names from the config file and its include, exclude, files rules
4572
4663
  * and also to cache the directory stucture
4573
4664
  */
4574
- readDirectory(path: string, extensions?: ReadonlyArray<string>, exclude?: ReadonlyArray<string>, include?: ReadonlyArray<string>, depth?: number): string[];
4665
+ readDirectory(path: string, extensions?: readonly string[], exclude?: readonly string[], include?: readonly string[], depth?: number): string[];
4575
4666
  }
4576
4667
  interface Watch<T> {
4577
4668
  /** Synchronize with host and get updated program */
@@ -4595,7 +4686,7 @@ declare namespace ts {
4595
4686
  * Create the watch compiler host for either configFile or fileNames and its options
4596
4687
  */
4597
4688
  function createWatchCompilerHost<T extends BuilderProgram>(configFileName: string, optionsToExtend: CompilerOptions | undefined, system: System, createProgram?: CreateProgram<T>, reportDiagnostic?: DiagnosticReporter, reportWatchStatus?: WatchStatusReporter): WatchCompilerHostOfConfigFile<T>;
4598
- function createWatchCompilerHost<T extends BuilderProgram>(rootFiles: string[], options: CompilerOptions, system: System, createProgram?: CreateProgram<T>, reportDiagnostic?: DiagnosticReporter, reportWatchStatus?: WatchStatusReporter, projectReferences?: ReadonlyArray<ProjectReference>): WatchCompilerHostOfFilesAndCompilerOptions<T>;
4689
+ function createWatchCompilerHost<T extends BuilderProgram>(rootFiles: string[], options: CompilerOptions, system: System, createProgram?: CreateProgram<T>, reportDiagnostic?: DiagnosticReporter, reportWatchStatus?: WatchStatusReporter, projectReferences?: readonly ProjectReference[]): WatchCompilerHostOfFilesAndCompilerOptions<T>;
4599
4690
  /**
4600
4691
  * Creates the watch from the host for root files and compiler options
4601
4692
  */
@@ -4648,8 +4739,8 @@ declare namespace ts {
4648
4739
  function createBuilderStatusReporter(system: System, pretty?: boolean): DiagnosticReporter;
4649
4740
  function createSolutionBuilderHost<T extends BuilderProgram = EmitAndSemanticDiagnosticsBuilderProgram>(system?: System, createProgram?: CreateProgram<T>, reportDiagnostic?: DiagnosticReporter, reportSolutionBuilderStatus?: DiagnosticReporter, reportErrorSummary?: ReportEmitErrorSummary): SolutionBuilderHost<T>;
4650
4741
  function createSolutionBuilderWithWatchHost<T extends BuilderProgram = EmitAndSemanticDiagnosticsBuilderProgram>(system?: System, createProgram?: CreateProgram<T>, reportDiagnostic?: DiagnosticReporter, reportSolutionBuilderStatus?: DiagnosticReporter, reportWatchStatus?: WatchStatusReporter): SolutionBuilderWithWatchHost<T>;
4651
- function createSolutionBuilder<T extends BuilderProgram>(host: SolutionBuilderHost<T>, rootNames: ReadonlyArray<string>, defaultOptions: BuildOptions): SolutionBuilder<T>;
4652
- function createSolutionBuilderWithWatch<T extends BuilderProgram>(host: SolutionBuilderWithWatchHost<T>, rootNames: ReadonlyArray<string>, defaultOptions: BuildOptions): SolutionBuilder<T>;
4742
+ function createSolutionBuilder<T extends BuilderProgram>(host: SolutionBuilderHost<T>, rootNames: readonly string[], defaultOptions: BuildOptions): SolutionBuilder<T>;
4743
+ function createSolutionBuilderWithWatch<T extends BuilderProgram>(host: SolutionBuilderWithWatchHost<T>, rootNames: readonly string[], defaultOptions: BuildOptions): SolutionBuilder<T>;
4653
4744
  enum InvalidatedProjectKind {
4654
4745
  Build = 0,
4655
4746
  UpdateBundle = 1,
@@ -4674,14 +4765,14 @@ declare namespace ts {
4674
4765
  getBuilderProgram(): T | undefined;
4675
4766
  getProgram(): Program | undefined;
4676
4767
  getSourceFile(fileName: string): SourceFile | undefined;
4677
- getSourceFiles(): ReadonlyArray<SourceFile>;
4678
- getOptionsDiagnostics(cancellationToken?: CancellationToken): ReadonlyArray<Diagnostic>;
4679
- getGlobalDiagnostics(cancellationToken?: CancellationToken): ReadonlyArray<Diagnostic>;
4680
- getConfigFileParsingDiagnostics(): ReadonlyArray<Diagnostic>;
4681
- getSyntacticDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): ReadonlyArray<Diagnostic>;
4682
- getAllDependencies(sourceFile: SourceFile): ReadonlyArray<string>;
4683
- getSemanticDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): ReadonlyArray<Diagnostic>;
4684
- getSemanticDiagnosticsOfNextAffectedFile(cancellationToken?: CancellationToken, ignoreSourceFile?: (sourceFile: SourceFile) => boolean): AffectedFileResult<ReadonlyArray<Diagnostic>>;
4768
+ getSourceFiles(): readonly SourceFile[];
4769
+ getOptionsDiagnostics(cancellationToken?: CancellationToken): readonly Diagnostic[];
4770
+ getGlobalDiagnostics(cancellationToken?: CancellationToken): readonly Diagnostic[];
4771
+ getConfigFileParsingDiagnostics(): readonly Diagnostic[];
4772
+ getSyntacticDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): readonly Diagnostic[];
4773
+ getAllDependencies(sourceFile: SourceFile): readonly string[];
4774
+ getSemanticDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): readonly Diagnostic[];
4775
+ getSemanticDiagnosticsOfNextAffectedFile(cancellationToken?: CancellationToken, ignoreSourceFile?: (sourceFile: SourceFile) => boolean): AffectedFileResult<readonly Diagnostic[]>;
4685
4776
  emit(targetSourceFile?: SourceFile, writeFile?: WriteFileCallback, cancellationToken?: CancellationToken, emitOnlyDtsFiles?: boolean, customTransformers?: CustomTransformers): EmitResult | undefined;
4686
4777
  }
4687
4778
  interface UpdateBundleProject<T extends BuilderProgram> extends InvalidatedProjectBase {
@@ -4744,7 +4835,7 @@ declare namespace ts.server {
4744
4835
  readonly kind: EventBeginInstallTypes | EventEndInstallTypes;
4745
4836
  readonly eventId: number;
4746
4837
  readonly typingsInstallerVersion: string;
4747
- readonly packagesToInstall: ReadonlyArray<string>;
4838
+ readonly packagesToInstall: readonly string[];
4748
4839
  }
4749
4840
  interface BeginInstallTypes extends InstallTypes {
4750
4841
  readonly kind: EventBeginInstallTypes;
@@ -4797,8 +4888,8 @@ declare namespace ts {
4797
4888
  getProperties(): Symbol[];
4798
4889
  getProperty(propertyName: string): Symbol | undefined;
4799
4890
  getApparentProperties(): Symbol[];
4800
- getCallSignatures(): ReadonlyArray<Signature>;
4801
- getConstructSignatures(): ReadonlyArray<Signature>;
4891
+ getCallSignatures(): readonly Signature[];
4892
+ getConstructSignatures(): readonly Signature[];
4802
4893
  getStringIndexType(): Type | undefined;
4803
4894
  getNumberIndexType(): Type | undefined;
4804
4895
  getBaseTypes(): BaseType[] | undefined;
@@ -4815,6 +4906,9 @@ declare namespace ts {
4815
4906
  isClassOrInterface(): this is InterfaceType;
4816
4907
  isClass(): this is InterfaceType;
4817
4908
  }
4909
+ interface TypeReference {
4910
+ typeArguments?: readonly Type[];
4911
+ }
4818
4912
  interface Signature {
4819
4913
  getDeclaration(): SignatureDeclaration;
4820
4914
  getTypeParameters(): TypeParameter[] | undefined;
@@ -4826,7 +4920,7 @@ declare namespace ts {
4826
4920
  interface SourceFile {
4827
4921
  getLineAndCharacterOfPosition(pos: number): LineAndCharacter;
4828
4922
  getLineEndOfPosition(pos: number): number;
4829
- getLineStarts(): ReadonlyArray<number>;
4923
+ getLineStarts(): readonly number[];
4830
4924
  getPositionOfLineAndCharacter(line: number, character: number): number;
4831
4925
  update(newText: string, textChangeRange: TextChangeRange): SourceFile;
4832
4926
  }
@@ -4875,7 +4969,7 @@ declare namespace ts {
4875
4969
  fileName: Path;
4876
4970
  packageName: string;
4877
4971
  }
4878
- interface LanguageServiceHost extends GetEffectiveTypeRootsHost {
4972
+ interface LanguageServiceHost extends ModuleSpecifierResolutionHost {
4879
4973
  getCompilationSettings(): CompilerOptions;
4880
4974
  getNewLine?(): string;
4881
4975
  getProjectVersion?(): string;
@@ -4883,7 +4977,7 @@ declare namespace ts {
4883
4977
  getScriptKind?(fileName: string): ScriptKind;
4884
4978
  getScriptVersion(fileName: string): string;
4885
4979
  getScriptSnapshot(fileName: string): IScriptSnapshot | undefined;
4886
- getProjectReferences?(): ReadonlyArray<ProjectReference> | undefined;
4980
+ getProjectReferences?(): readonly ProjectReference[] | undefined;
4887
4981
  getLocalizedDiagnosticMessages?(): any;
4888
4982
  getCancellationToken?(): HostCancellationToken;
4889
4983
  getCurrentDirectory(): string;
@@ -4891,8 +4985,7 @@ declare namespace ts {
4891
4985
  log?(s: string): void;
4892
4986
  trace?(s: string): void;
4893
4987
  error?(s: string): void;
4894
- useCaseSensitiveFileNames?(): boolean;
4895
- readDirectory?(path: string, extensions?: ReadonlyArray<string>, exclude?: ReadonlyArray<string>, include?: ReadonlyArray<string>, depth?: number): string[];
4988
+ readDirectory?(path: string, extensions?: readonly string[], exclude?: readonly string[], include?: readonly string[], depth?: number): string[];
4896
4989
  readFile?(path: string, encoding?: string): string | undefined;
4897
4990
  realpath?(path: string): string;
4898
4991
  fileExists?(path: string): boolean;
@@ -4937,17 +5030,17 @@ declare namespace ts {
4937
5030
  getBreakpointStatementAtPosition(fileName: string, position: number): TextSpan | undefined;
4938
5031
  getSignatureHelpItems(fileName: string, position: number, options: SignatureHelpItemsOptions | undefined): SignatureHelpItems | undefined;
4939
5032
  getRenameInfo(fileName: string, position: number, options?: RenameInfoOptions): RenameInfo;
4940
- findRenameLocations(fileName: string, position: number, findInStrings: boolean, findInComments: boolean, providePrefixAndSuffixTextForRename?: boolean): ReadonlyArray<RenameLocation> | undefined;
5033
+ findRenameLocations(fileName: string, position: number, findInStrings: boolean, findInComments: boolean, providePrefixAndSuffixTextForRename?: boolean): readonly RenameLocation[] | undefined;
4941
5034
  getSmartSelectionRange(fileName: string, position: number): SelectionRange;
4942
- getDefinitionAtPosition(fileName: string, position: number): ReadonlyArray<DefinitionInfo> | undefined;
5035
+ getDefinitionAtPosition(fileName: string, position: number): readonly DefinitionInfo[] | undefined;
4943
5036
  getDefinitionAndBoundSpan(fileName: string, position: number): DefinitionInfoAndBoundSpan | undefined;
4944
- getTypeDefinitionAtPosition(fileName: string, position: number): ReadonlyArray<DefinitionInfo> | undefined;
4945
- getImplementationAtPosition(fileName: string, position: number): ReadonlyArray<ImplementationLocation> | undefined;
5037
+ getTypeDefinitionAtPosition(fileName: string, position: number): readonly DefinitionInfo[] | undefined;
5038
+ getImplementationAtPosition(fileName: string, position: number): readonly ImplementationLocation[] | undefined;
4946
5039
  getReferencesAtPosition(fileName: string, position: number): ReferenceEntry[] | undefined;
4947
5040
  findReferences(fileName: string, position: number): ReferencedSymbol[] | undefined;
4948
5041
  getDocumentHighlights(fileName: string, position: number, filesToSearch: string[]): DocumentHighlights[] | undefined;
4949
5042
  /** @deprecated */
4950
- getOccurrencesAtPosition(fileName: string, position: number): ReadonlyArray<ReferenceEntry> | undefined;
5043
+ getOccurrencesAtPosition(fileName: string, position: number): readonly ReferenceEntry[] | undefined;
4951
5044
  getNavigateToItems(searchValue: string, maxResultCount?: number, fileName?: string, excludeDtsFiles?: boolean): NavigateToItem[];
4952
5045
  getNavigationBarItems(fileName: string): NavigationBarItem[];
4953
5046
  getNavigationTree(fileName: string): NavigationTree;
@@ -4967,7 +5060,7 @@ declare namespace ts {
4967
5060
  getJsxClosingTagAtPosition(fileName: string, position: number): JsxClosingTagInfo | undefined;
4968
5061
  getSpanOfEnclosingComment(fileName: string, position: number, onlyMultiLine: boolean): TextSpan | undefined;
4969
5062
  toLineColumnOffset?(fileName: string, position: number): LineAndCharacter;
4970
- getCodeFixesAtPosition(fileName: string, start: number, end: number, errorCodes: ReadonlyArray<number>, formatOptions: FormatCodeSettings, preferences: UserPreferences): ReadonlyArray<CodeFixAction>;
5063
+ getCodeFixesAtPosition(fileName: string, start: number, end: number, errorCodes: readonly number[], formatOptions: FormatCodeSettings, preferences: UserPreferences): readonly CodeFixAction[];
4971
5064
  getCombinedCodeFix(scope: CombinedCodeFixScope, fixId: {}, formatOptions: FormatCodeSettings, preferences: UserPreferences): CombinedCodeActions;
4972
5065
  applyCodeActionCommand(action: CodeActionCommand, formatSettings?: FormatCodeSettings): Promise<ApplyCodeActionCommandResult>;
4973
5066
  applyCodeActionCommand(action: CodeActionCommand[], formatSettings?: FormatCodeSettings): Promise<ApplyCodeActionCommandResult[]>;
@@ -4980,9 +5073,9 @@ declare namespace ts {
4980
5073
  applyCodeActionCommand(fileName: string, action: CodeActionCommand | CodeActionCommand[]): Promise<ApplyCodeActionCommandResult | ApplyCodeActionCommandResult[]>;
4981
5074
  getApplicableRefactors(fileName: string, positionOrRange: number | TextRange, preferences: UserPreferences | undefined): ApplicableRefactorInfo[];
4982
5075
  getEditsForRefactor(fileName: string, formatOptions: FormatCodeSettings, positionOrRange: number | TextRange, refactorName: string, actionName: string, preferences: UserPreferences | undefined): RefactorEditInfo | undefined;
4983
- organizeImports(scope: OrganizeImportsScope, formatOptions: FormatCodeSettings, preferences: UserPreferences | undefined): ReadonlyArray<FileTextChanges>;
4984
- getEditsForFileRename(oldFilePath: string, newFilePath: string, formatOptions: FormatCodeSettings, preferences: UserPreferences | undefined): ReadonlyArray<FileTextChanges>;
4985
- getEmitOutput(fileName: string, emitOnlyDtsFiles?: boolean): EmitOutput;
5076
+ organizeImports(scope: OrganizeImportsScope, formatOptions: FormatCodeSettings, preferences: UserPreferences | undefined): readonly FileTextChanges[];
5077
+ getEditsForFileRename(oldFilePath: string, newFilePath: string, formatOptions: FormatCodeSettings, preferences: UserPreferences | undefined): readonly FileTextChanges[];
5078
+ getEmitOutput(fileName: string, emitOnlyDtsFiles?: boolean, forceDtsEmit?: boolean): EmitOutput;
4986
5079
  getProgram(): Program | undefined;
4987
5080
  dispose(): void;
4988
5081
  }
@@ -5105,7 +5198,7 @@ declare namespace ts {
5105
5198
  }
5106
5199
  interface FileTextChanges {
5107
5200
  fileName: string;
5108
- textChanges: TextChange[];
5201
+ textChanges: readonly TextChange[];
5109
5202
  isNewFile?: boolean;
5110
5203
  }
5111
5204
  interface CodeAction {
@@ -5130,8 +5223,8 @@ declare namespace ts {
5130
5223
  fixAllDescription?: string;
5131
5224
  }
5132
5225
  interface CombinedCodeActions {
5133
- changes: ReadonlyArray<FileTextChanges>;
5134
- commands?: ReadonlyArray<CodeActionCommand>;
5226
+ changes: readonly FileTextChanges[];
5227
+ commands?: readonly CodeActionCommand[];
5135
5228
  }
5136
5229
  type CodeActionCommand = InstallPackageAction;
5137
5230
  interface InstallPackageAction {
@@ -5252,6 +5345,11 @@ declare namespace ts {
5252
5345
  Block = 1,
5253
5346
  Smart = 2
5254
5347
  }
5348
+ enum SemicolonPreference {
5349
+ Ignore = "ignore",
5350
+ Insert = "insert",
5351
+ Remove = "remove"
5352
+ }
5255
5353
  interface EditorOptions {
5256
5354
  BaseIndentSize?: number;
5257
5355
  IndentSize: number;
@@ -5304,6 +5402,7 @@ declare namespace ts {
5304
5402
  readonly placeOpenBraceOnNewLineForControlBlocks?: boolean;
5305
5403
  readonly insertSpaceBeforeTypeAnnotation?: boolean;
5306
5404
  readonly indentMultiLineObjectLiteralBeginningOnBlankLine?: boolean;
5405
+ readonly semicolons?: SemicolonPreference;
5307
5406
  }
5308
5407
  function getDefaultFormatCodeSettings(newLineCharacter?: string): FormatCodeSettings;
5309
5408
  interface DefinitionInfo extends DocumentSpan {
@@ -5313,7 +5412,7 @@ declare namespace ts {
5313
5412
  containerName: string;
5314
5413
  }
5315
5414
  interface DefinitionInfoAndBoundSpan {
5316
- definitions?: ReadonlyArray<DefinitionInfo>;
5415
+ definitions?: readonly DefinitionInfo[];
5317
5416
  textSpan: TextSpan;
5318
5417
  }
5319
5418
  interface ReferencedSymbolDefinitionInfo extends DefinitionInfo {
@@ -5799,4 +5898,4 @@ declare namespace ts {
5799
5898
  function transform<T extends Node>(source: T | T[], transformers: TransformerFactory<T>[], compilerOptions?: CompilerOptions): TransformationResult<T>;
5800
5899
  }
5801
5900
 
5802
- export = ts;
5901
+ export = ts;