typescript 4.5.0-dev.20211017 → 4.5.0-dev.20211021

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.
package/lib/typescript.js CHANGED
@@ -294,7 +294,7 @@ var ts;
294
294
  // The following is baselined as a literal template type without intervention
295
295
  /** The version of the TypeScript compiler release */
296
296
  // eslint-disable-next-line @typescript-eslint/no-inferrable-types
297
- ts.version = ts.versionMajorMinor + ".0-dev.20211017";
297
+ ts.version = ts.versionMajorMinor + ".0-dev.20211021";
298
298
  /* @internal */
299
299
  var Comparison;
300
300
  (function (Comparison) {
@@ -9535,6 +9535,7 @@ var ts;
9535
9535
  If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_declare_module_1: diag(7058, ts.DiagnosticCategory.Error, "If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_decl_7058", "If the '{0}' package actually exposes this module, try adding a new declaration (.d.ts) file containing `declare module '{1}';`"),
9536
9536
  This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Use_an_as_expression_instead: diag(7059, ts.DiagnosticCategory.Error, "This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Use_an_as_expression_instead_7059", "This syntax is reserved in files with the .mts or .cts extension. Use an `as` expression instead."),
9537
9537
  This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Add_a_trailing_comma_or_explicit_constraint: diag(7060, ts.DiagnosticCategory.Error, "This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Add_a_trailing_comma_or_explicit_cons_7060", "This syntax is reserved in files with the .mts or .cts extension. Add a trailing comma or explicit constraint."),
9538
+ A_mapped_type_may_not_declare_properties_or_methods: diag(7061, ts.DiagnosticCategory.Error, "A_mapped_type_may_not_declare_properties_or_methods_7061", "A mapped type may not declare properties or methods."),
9538
9539
  You_cannot_rename_this_element: diag(8000, ts.DiagnosticCategory.Error, "You_cannot_rename_this_element_8000", "You cannot rename this element."),
9539
9540
  You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library: diag(8001, ts.DiagnosticCategory.Error, "You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library_8001", "You cannot rename elements that are defined in the standard TypeScript library."),
9540
9541
  import_can_only_be_used_in_TypeScript_files: diag(8002, ts.DiagnosticCategory.Error, "import_can_only_be_used_in_TypeScript_files_8002", "'import ... =' can only be used in TypeScript files."),
@@ -23099,24 +23100,26 @@ var ts;
23099
23100
  : node;
23100
23101
  }
23101
23102
  // @api
23102
- function createMappedTypeNode(readonlyToken, typeParameter, nameType, questionToken, type) {
23103
+ function createMappedTypeNode(readonlyToken, typeParameter, nameType, questionToken, type, members) {
23103
23104
  var node = createBaseNode(194 /* MappedType */);
23104
23105
  node.readonlyToken = readonlyToken;
23105
23106
  node.typeParameter = typeParameter;
23106
23107
  node.nameType = nameType;
23107
23108
  node.questionToken = questionToken;
23108
23109
  node.type = type;
23110
+ node.members = members && createNodeArray(members);
23109
23111
  node.transformFlags = 1 /* ContainsTypeScript */;
23110
23112
  return node;
23111
23113
  }
23112
23114
  // @api
23113
- function updateMappedTypeNode(node, readonlyToken, typeParameter, nameType, questionToken, type) {
23115
+ function updateMappedTypeNode(node, readonlyToken, typeParameter, nameType, questionToken, type, members) {
23114
23116
  return node.readonlyToken !== readonlyToken
23115
23117
  || node.typeParameter !== typeParameter
23116
23118
  || node.nameType !== nameType
23117
23119
  || node.questionToken !== questionToken
23118
23120
  || node.type !== type
23119
- ? update(createMappedTypeNode(readonlyToken, typeParameter, nameType, questionToken, type), node)
23121
+ || node.members !== members
23122
+ ? update(createMappedTypeNode(readonlyToken, typeParameter, nameType, questionToken, type, members), node)
23120
23123
  : node;
23121
23124
  }
23122
23125
  // @api
@@ -29989,7 +29992,8 @@ var ts;
29989
29992
  visitNode(cbNode, node.typeParameter) ||
29990
29993
  visitNode(cbNode, node.nameType) ||
29991
29994
  visitNode(cbNode, node.questionToken) ||
29992
- visitNode(cbNode, node.type);
29995
+ visitNode(cbNode, node.type) ||
29996
+ visitNodes(cbNode, cbNodes, node.members);
29993
29997
  case 195 /* LiteralType */:
29994
29998
  return visitNode(cbNode, node.literal);
29995
29999
  case 196 /* NamedTupleMember */:
@@ -32879,8 +32883,9 @@ var ts;
32879
32883
  }
32880
32884
  var type = parseTypeAnnotation();
32881
32885
  parseSemicolon();
32886
+ var members = parseList(4 /* TypeMembers */, parseTypeMember);
32882
32887
  parseExpected(19 /* CloseBraceToken */);
32883
- return finishNode(factory.createMappedTypeNode(readonlyToken, typeParameter, nameType, questionToken, type), pos);
32888
+ return finishNode(factory.createMappedTypeNode(readonlyToken, typeParameter, nameType, questionToken, type, members), pos);
32884
32889
  }
32885
32890
  function parseTupleElementType() {
32886
32891
  var pos = getNodePos();
@@ -38167,7 +38172,7 @@ var ts;
38167
38172
  var ts;
38168
38173
  (function (ts) {
38169
38174
  /* @internal */
38170
- ts.compileOnSaveCommandLineOption = { name: "compileOnSave", type: "boolean" };
38175
+ ts.compileOnSaveCommandLineOption = { name: "compileOnSave", type: "boolean", defaultValueDescription: "false" };
38171
38176
  var jsxOptionMap = new ts.Map(ts.getEntries({
38172
38177
  "preserve": 1 /* Preserve */,
38173
38178
  "react-native": 3 /* ReactNative */,
@@ -38304,6 +38309,7 @@ var ts;
38304
38309
  type: "boolean",
38305
38310
  category: ts.Diagnostics.Watch_and_Build_Modes,
38306
38311
  description: ts.Diagnostics.Synchronously_call_callbacks_and_update_the_state_of_directory_watchers_on_platforms_that_don_t_support_recursive_watching_natively,
38312
+ defaultValueDescription: "false",
38307
38313
  },
38308
38314
  {
38309
38315
  name: "excludeDirectories",
@@ -38339,11 +38345,13 @@ var ts;
38339
38345
  showInSimplifiedHelpView: true,
38340
38346
  category: ts.Diagnostics.Command_line_Options,
38341
38347
  description: ts.Diagnostics.Print_this_message,
38348
+ defaultValueDescription: "false",
38342
38349
  },
38343
38350
  {
38344
38351
  name: "help",
38345
38352
  shortName: "?",
38346
- type: "boolean"
38353
+ type: "boolean",
38354
+ defaultValueDescription: "false",
38347
38355
  },
38348
38356
  {
38349
38357
  name: "watch",
@@ -38353,6 +38361,7 @@ var ts;
38353
38361
  isCommandLineOnly: true,
38354
38362
  category: ts.Diagnostics.Command_line_Options,
38355
38363
  description: ts.Diagnostics.Watch_input_files,
38364
+ defaultValueDescription: "false",
38356
38365
  },
38357
38366
  {
38358
38367
  name: "preserveWatchOutput",
@@ -38360,7 +38369,7 @@ var ts;
38360
38369
  showInSimplifiedHelpView: false,
38361
38370
  category: ts.Diagnostics.Output_Formatting,
38362
38371
  description: ts.Diagnostics.Disable_wiping_the_console_in_watch_mode,
38363
- defaultValueDescription: "n/a"
38372
+ defaultValueDescription: "false",
38364
38373
  },
38365
38374
  {
38366
38375
  name: "listFiles",
@@ -38373,7 +38382,8 @@ var ts;
38373
38382
  name: "explainFiles",
38374
38383
  type: "boolean",
38375
38384
  category: ts.Diagnostics.Compiler_Diagnostics,
38376
- description: ts.Diagnostics.Print_files_read_during_the_compilation_including_why_it_was_included
38385
+ description: ts.Diagnostics.Print_files_read_during_the_compilation_including_why_it_was_included,
38386
+ defaultValueDescription: "false",
38377
38387
  },
38378
38388
  {
38379
38389
  name: "listEmittedFiles",
@@ -38444,7 +38454,8 @@ var ts;
38444
38454
  affectsSemanticDiagnostics: true,
38445
38455
  affectsEmit: true,
38446
38456
  category: ts.Diagnostics.Watch_and_Build_Modes,
38447
- description: ts.Diagnostics.Have_recompiles_in_projects_that_use_incremental_and_watch_mode_assume_that_changes_within_a_file_will_only_affect_files_directly_depending_on_it
38457
+ description: ts.Diagnostics.Have_recompiles_in_projects_that_use_incremental_and_watch_mode_assume_that_changes_within_a_file_will_only_affect_files_directly_depending_on_it,
38458
+ defaultValueDescription: "false",
38448
38459
  },
38449
38460
  {
38450
38461
  name: "locale",
@@ -38489,6 +38500,7 @@ var ts;
38489
38500
  showInSimplifiedHelpView: true,
38490
38501
  category: ts.Diagnostics.Command_line_Options,
38491
38502
  description: ts.Diagnostics.Show_all_compiler_options,
38503
+ defaultValueDescription: "false",
38492
38504
  },
38493
38505
  {
38494
38506
  name: "version",
@@ -38497,6 +38509,7 @@ var ts;
38497
38509
  showInSimplifiedHelpView: true,
38498
38510
  category: ts.Diagnostics.Command_line_Options,
38499
38511
  description: ts.Diagnostics.Print_the_compiler_s_version,
38512
+ defaultValueDescription: "false",
38500
38513
  },
38501
38514
  {
38502
38515
  name: "init",
@@ -38504,6 +38517,7 @@ var ts;
38504
38517
  showInSimplifiedHelpView: true,
38505
38518
  category: ts.Diagnostics.Command_line_Options,
38506
38519
  description: ts.Diagnostics.Initializes_a_TypeScript_project_and_creates_a_tsconfig_json_file,
38520
+ defaultValueDescription: "false",
38507
38521
  },
38508
38522
  {
38509
38523
  name: "project",
@@ -38521,7 +38535,8 @@ var ts;
38521
38535
  shortName: "b",
38522
38536
  showInSimplifiedHelpView: true,
38523
38537
  category: ts.Diagnostics.Command_line_Options,
38524
- description: ts.Diagnostics.Build_one_or_more_projects_and_their_dependencies_if_out_of_date
38538
+ description: ts.Diagnostics.Build_one_or_more_projects_and_their_dependencies_if_out_of_date,
38539
+ defaultValueDescription: "false",
38525
38540
  },
38526
38541
  {
38527
38542
  name: "showConfig",
@@ -38529,7 +38544,8 @@ var ts;
38529
38544
  showInSimplifiedHelpView: true,
38530
38545
  category: ts.Diagnostics.Command_line_Options,
38531
38546
  isCommandLineOnly: true,
38532
- description: ts.Diagnostics.Print_the_final_configuration_instead_of_building
38547
+ description: ts.Diagnostics.Print_the_final_configuration_instead_of_building,
38548
+ defaultValueDescription: "false",
38533
38549
  },
38534
38550
  {
38535
38551
  name: "listFilesOnly",
@@ -38538,7 +38554,8 @@ var ts;
38538
38554
  affectsSemanticDiagnostics: true,
38539
38555
  affectsEmit: true,
38540
38556
  isCommandLineOnly: true,
38541
- description: ts.Diagnostics.Print_names_of_files_that_are_part_of_the_compilation_and_then_stop_processing
38557
+ description: ts.Diagnostics.Print_names_of_files_that_are_part_of_the_compilation_and_then_stop_processing,
38558
+ defaultValueDescription: "false",
38542
38559
  },
38543
38560
  // Basic
38544
38561
  ts.targetOptionDeclaration,
@@ -38658,7 +38675,6 @@ var ts;
38658
38675
  category: ts.Diagnostics.Emit,
38659
38676
  description: ts.Diagnostics.Specify_a_file_that_bundles_all_outputs_into_one_JavaScript_file_If_declaration_is_true_also_designates_a_file_that_bundles_all_d_ts_output,
38660
38677
  transpileOptionValue: undefined,
38661
- defaultValueDescription: "n/a"
38662
38678
  },
38663
38679
  {
38664
38680
  name: "outDir",
@@ -38669,7 +38685,6 @@ var ts;
38669
38685
  showInSimplifiedHelpView: true,
38670
38686
  category: ts.Diagnostics.Emit,
38671
38687
  description: ts.Diagnostics.Specify_an_output_folder_for_all_emitted_files,
38672
- defaultValueDescription: "n/a"
38673
38688
  },
38674
38689
  {
38675
38690
  name: "rootDir",
@@ -38826,6 +38841,7 @@ var ts;
38826
38841
  strictFlag: true,
38827
38842
  category: ts.Diagnostics.Type_Checking,
38828
38843
  description: ts.Diagnostics.Type_catch_clause_variables_as_unknown_instead_of_any,
38844
+ defaultValueDescription: "false",
38829
38845
  },
38830
38846
  {
38831
38847
  name: "alwaysStrict",
@@ -38858,7 +38874,8 @@ var ts;
38858
38874
  type: "boolean",
38859
38875
  affectsSemanticDiagnostics: true,
38860
38876
  category: ts.Diagnostics.Type_Checking,
38861
- description: ts.Diagnostics.Interpret_optional_property_types_as_written_rather_than_adding_undefined
38877
+ description: ts.Diagnostics.Interpret_optional_property_types_as_written_rather_than_adding_undefined,
38878
+ defaultValueDescription: "false",
38862
38879
  },
38863
38880
  {
38864
38881
  name: "noImplicitReturns",
@@ -38874,21 +38891,24 @@ var ts;
38874
38891
  affectsBindDiagnostics: true,
38875
38892
  affectsSemanticDiagnostics: true,
38876
38893
  category: ts.Diagnostics.Type_Checking,
38877
- description: ts.Diagnostics.Enable_error_reporting_for_fallthrough_cases_in_switch_statements
38894
+ description: ts.Diagnostics.Enable_error_reporting_for_fallthrough_cases_in_switch_statements,
38895
+ defaultValueDescription: "false",
38878
38896
  },
38879
38897
  {
38880
38898
  name: "noUncheckedIndexedAccess",
38881
38899
  type: "boolean",
38882
38900
  affectsSemanticDiagnostics: true,
38883
38901
  category: ts.Diagnostics.Type_Checking,
38884
- description: ts.Diagnostics.Include_undefined_in_index_signature_results
38902
+ description: ts.Diagnostics.Include_undefined_in_index_signature_results,
38903
+ defaultValueDescription: "false",
38885
38904
  },
38886
38905
  {
38887
38906
  name: "noImplicitOverride",
38888
38907
  type: "boolean",
38889
38908
  affectsSemanticDiagnostics: true,
38890
38909
  category: ts.Diagnostics.Type_Checking,
38891
- description: ts.Diagnostics.Ensure_overriding_members_in_derived_classes_are_marked_with_an_override_modifier
38910
+ description: ts.Diagnostics.Ensure_overriding_members_in_derived_classes_are_marked_with_an_override_modifier,
38911
+ defaultValueDescription: "false",
38892
38912
  },
38893
38913
  {
38894
38914
  name: "noPropertyAccessFromIndexSignature",
@@ -38997,7 +39017,7 @@ var ts;
38997
39017
  type: "boolean",
38998
39018
  category: ts.Diagnostics.Interop_Constraints,
38999
39019
  description: ts.Diagnostics.Disable_resolving_symlinks_to_their_realpath_This_correlates_to_the_same_flag_in_node,
39000
- defaultValueDescription: "n/a"
39020
+ defaultValueDescription: "false",
39001
39021
  },
39002
39022
  {
39003
39023
  name: "allowUmdGlobalAccess",
@@ -39046,7 +39066,8 @@ var ts;
39046
39066
  type: "boolean",
39047
39067
  affectsSemanticDiagnostics: true,
39048
39068
  category: ts.Diagnostics.Language_and_Environment,
39049
- description: ts.Diagnostics.Enable_experimental_support_for_TC39_stage_2_draft_decorators
39069
+ description: ts.Diagnostics.Enable_experimental_support_for_TC39_stage_2_draft_decorators,
39070
+ defaultValueDescription: "false",
39050
39071
  },
39051
39072
  {
39052
39073
  name: "emitDecoratorMetadata",
@@ -39054,7 +39075,8 @@ var ts;
39054
39075
  affectsSemanticDiagnostics: true,
39055
39076
  affectsEmit: true,
39056
39077
  category: ts.Diagnostics.Language_and_Environment,
39057
- description: ts.Diagnostics.Emit_design_type_metadata_for_decorated_declarations_in_source_files
39078
+ description: ts.Diagnostics.Emit_design_type_metadata_for_decorated_declarations_in_source_files,
39079
+ defaultValueDescription: "false",
39058
39080
  },
39059
39081
  // Advanced
39060
39082
  {
@@ -39097,7 +39119,6 @@ var ts;
39097
39119
  category: ts.Diagnostics.Backwards_Compatibility,
39098
39120
  paramType: ts.Diagnostics.FILE,
39099
39121
  transpileOptionValue: undefined,
39100
- defaultValueDescription: "n/a",
39101
39122
  description: ts.Diagnostics.Deprecated_setting_Use_outFile_instead,
39102
39123
  },
39103
39124
  {
@@ -39178,6 +39199,7 @@ var ts;
39178
39199
  affectsEmit: true,
39179
39200
  category: ts.Diagnostics.Emit,
39180
39201
  description: ts.Diagnostics.Disable_emitting_declarations_that_have_internal_in_their_JSDoc_comments,
39202
+ defaultValueDescription: "false",
39181
39203
  },
39182
39204
  {
39183
39205
  name: "disableSizeLimit",
@@ -39192,21 +39214,24 @@ var ts;
39192
39214
  type: "boolean",
39193
39215
  isTSConfigOnly: true,
39194
39216
  category: ts.Diagnostics.Projects,
39195
- description: ts.Diagnostics.Disable_preferring_source_files_instead_of_declaration_files_when_referencing_composite_projects
39217
+ description: ts.Diagnostics.Disable_preferring_source_files_instead_of_declaration_files_when_referencing_composite_projects,
39218
+ defaultValueDescription: "false",
39196
39219
  },
39197
39220
  {
39198
39221
  name: "disableSolutionSearching",
39199
39222
  type: "boolean",
39200
39223
  isTSConfigOnly: true,
39201
39224
  category: ts.Diagnostics.Projects,
39202
- description: ts.Diagnostics.Opt_a_project_out_of_multi_project_reference_checking_when_editing
39225
+ description: ts.Diagnostics.Opt_a_project_out_of_multi_project_reference_checking_when_editing,
39226
+ defaultValueDescription: "false",
39203
39227
  },
39204
39228
  {
39205
39229
  name: "disableReferencedProjectLoad",
39206
39230
  type: "boolean",
39207
39231
  isTSConfigOnly: true,
39208
39232
  category: ts.Diagnostics.Projects,
39209
- description: ts.Diagnostics.Reduce_the_number_of_projects_loaded_automatically_by_TypeScript
39233
+ description: ts.Diagnostics.Reduce_the_number_of_projects_loaded_automatically_by_TypeScript,
39234
+ defaultValueDescription: "false",
39210
39235
  },
39211
39236
  {
39212
39237
  name: "noImplicitUseStrict",
@@ -39239,7 +39264,7 @@ var ts;
39239
39264
  affectsEmit: true,
39240
39265
  category: ts.Diagnostics.Emit,
39241
39266
  description: ts.Diagnostics.Disable_erasing_const_enum_declarations_in_generated_code,
39242
- defaultValueDescription: "n/a"
39267
+ defaultValueDescription: "false",
39243
39268
  },
39244
39269
  {
39245
39270
  name: "declarationDir",
@@ -39250,7 +39275,6 @@ var ts;
39250
39275
  category: ts.Diagnostics.Emit,
39251
39276
  transpileOptionValue: undefined,
39252
39277
  description: ts.Diagnostics.Specify_the_output_directory_for_generated_declaration_files,
39253
- defaultValueDescription: "n/a"
39254
39278
  },
39255
39279
  {
39256
39280
  name: "skipLibCheck",
@@ -39332,6 +39356,7 @@ var ts;
39332
39356
  affectsEmit: true,
39333
39357
  category: ts.Diagnostics.Emit,
39334
39358
  description: ts.Diagnostics.Preserve_unused_imported_values_in_the_JavaScript_output_that_would_otherwise_be_removed,
39359
+ defaultValueDescription: "false",
39335
39360
  },
39336
39361
  {
39337
39362
  name: "keyofStringsOnly",
@@ -39379,27 +39404,31 @@ var ts;
39379
39404
  shortName: "v",
39380
39405
  category: ts.Diagnostics.Command_line_Options,
39381
39406
  description: ts.Diagnostics.Enable_verbose_logging,
39382
- type: "boolean"
39407
+ type: "boolean",
39408
+ defaultValueDescription: "false",
39383
39409
  },
39384
39410
  {
39385
39411
  name: "dry",
39386
39412
  shortName: "d",
39387
39413
  category: ts.Diagnostics.Command_line_Options,
39388
39414
  description: ts.Diagnostics.Show_what_would_be_built_or_deleted_if_specified_with_clean,
39389
- type: "boolean"
39415
+ type: "boolean",
39416
+ defaultValueDescription: "false",
39390
39417
  },
39391
39418
  {
39392
39419
  name: "force",
39393
39420
  shortName: "f",
39394
39421
  category: ts.Diagnostics.Command_line_Options,
39395
39422
  description: ts.Diagnostics.Build_all_projects_including_those_that_appear_to_be_up_to_date,
39396
- type: "boolean"
39423
+ type: "boolean",
39424
+ defaultValueDescription: "false",
39397
39425
  },
39398
39426
  {
39399
39427
  name: "clean",
39400
39428
  category: ts.Diagnostics.Command_line_Options,
39401
39429
  description: ts.Diagnostics.Delete_the_outputs_of_all_projects,
39402
- type: "boolean"
39430
+ type: "boolean",
39431
+ defaultValueDescription: "false",
39403
39432
  }
39404
39433
  ];
39405
39434
  /* @internal */
@@ -39412,10 +39441,12 @@ var ts;
39412
39441
  */
39413
39442
  name: "enableAutoDiscovery",
39414
39443
  type: "boolean",
39444
+ defaultValueDescription: "false",
39415
39445
  },
39416
39446
  {
39417
39447
  name: "enable",
39418
39448
  type: "boolean",
39449
+ defaultValueDescription: "false",
39419
39450
  },
39420
39451
  {
39421
39452
  name: "include",
@@ -39436,6 +39467,7 @@ var ts;
39436
39467
  {
39437
39468
  name: "disableFilenameBasedTypeAcquisition",
39438
39469
  type: "boolean",
39470
+ defaultValueDescription: "false",
39439
39471
  },
39440
39472
  ];
39441
39473
  /*@internal*/
@@ -51128,7 +51160,7 @@ var ts;
51128
51160
  var typeParameterNode = typeParameterToDeclarationWithConstraint(getTypeParameterFromMappedType(type), context, appropriateConstraintTypeNode);
51129
51161
  var nameTypeNode = type.declaration.nameType ? typeToTypeNodeHelper(getNameTypeFromMappedType(type), context) : undefined;
51130
51162
  var templateTypeNode = typeToTypeNodeHelper(removeMissingType(getTemplateTypeFromMappedType(type), !!(getMappedTypeModifiers(type) & 4 /* IncludeOptional */)), context);
51131
- var mappedTypeNode = ts.factory.createMappedTypeNode(readonlyToken, typeParameterNode, nameTypeNode, questionToken, templateTypeNode);
51163
+ var mappedTypeNode = ts.factory.createMappedTypeNode(readonlyToken, typeParameterNode, nameTypeNode, questionToken, templateTypeNode, /*members*/ undefined);
51132
51164
  context.approximateLength += 10;
51133
51165
  return ts.setEmitFlags(mappedTypeNode, 1 /* SingleLine */);
51134
51166
  }
@@ -67202,17 +67234,16 @@ var ts;
67202
67234
  var inferredType = void 0;
67203
67235
  var signature = context.signature;
67204
67236
  if (signature) {
67205
- var inferredCovariantType = inference.candidates ? getCovariantInference(inference, signature) : undefined;
67237
+ var inferredCovariantType_1 = inference.candidates ? getCovariantInference(inference, signature) : undefined;
67206
67238
  if (inference.contraCandidates) {
67207
- var inferredContravariantType = getContravariantInference(inference);
67208
67239
  // If we have both co- and contra-variant inferences, we prefer the contra-variant inference
67209
- // unless the co-variant inference is a subtype and not 'never'.
67210
- inferredType = inferredCovariantType && !(inferredCovariantType.flags & 131072 /* Never */) &&
67211
- isTypeSubtypeOf(inferredCovariantType, inferredContravariantType) ?
67212
- inferredCovariantType : inferredContravariantType;
67240
+ // unless the co-variant inference is a subtype of some contra-variant inference and not 'never'.
67241
+ inferredType = inferredCovariantType_1 && !(inferredCovariantType_1.flags & 131072 /* Never */) &&
67242
+ ts.some(inference.contraCandidates, function (t) { return isTypeSubtypeOf(inferredCovariantType_1, t); }) ?
67243
+ inferredCovariantType_1 : getContravariantInference(inference);
67213
67244
  }
67214
- else if (inferredCovariantType) {
67215
- inferredType = inferredCovariantType;
67245
+ else if (inferredCovariantType_1) {
67246
+ inferredType = inferredCovariantType_1;
67216
67247
  }
67217
67248
  else if (context.flags & 1 /* NoDefault */) {
67218
67249
  // We use silentNeverType as the wildcard that signals no inferences.
@@ -71336,6 +71367,10 @@ var ts;
71336
71367
  function checkComputedPropertyName(node) {
71337
71368
  var links = getNodeLinks(node.expression);
71338
71369
  if (!links.resolvedType) {
71370
+ if ((ts.isTypeLiteralNode(node.parent.parent) || ts.isClassLike(node.parent.parent) || ts.isInterfaceDeclaration(node.parent.parent))
71371
+ && ts.isBinaryExpression(node.expression) && node.expression.operatorToken.kind === 101 /* InKeyword */) {
71372
+ return links.resolvedType = errorType;
71373
+ }
71339
71374
  links.resolvedType = checkExpression(node.expression);
71340
71375
  // The computed property name of a non-static class field within a loop must be stored in a block-scoped binding.
71341
71376
  // (It needs to be bound at class evaluation time.)
@@ -78485,6 +78520,7 @@ var ts;
78485
78520
  checkIndexedAccessIndexType(getTypeFromIndexedAccessTypeNode(node), node);
78486
78521
  }
78487
78522
  function checkMappedType(node) {
78523
+ checkGrammarMappedType(node);
78488
78524
  checkSourceElement(node.typeParameter);
78489
78525
  checkSourceElement(node.nameType);
78490
78526
  checkSourceElement(node.type);
@@ -78501,6 +78537,12 @@ var ts;
78501
78537
  checkTypeAssignableTo(constraintType, keyofConstraintType, ts.getEffectiveConstraintOfTypeParameter(node.typeParameter));
78502
78538
  }
78503
78539
  }
78540
+ function checkGrammarMappedType(node) {
78541
+ var _a;
78542
+ if ((_a = node.members) === null || _a === void 0 ? void 0 : _a.length) {
78543
+ return grammarErrorOnNode(node.members[0], ts.Diagnostics.A_mapped_type_may_not_declare_properties_or_methods);
78544
+ }
78545
+ }
78504
78546
  function checkThisType(node) {
78505
78547
  getTypeFromThisTypeNode(node);
78506
78548
  }
@@ -86364,6 +86406,9 @@ var ts;
86364
86406
  }
86365
86407
  }
86366
86408
  function checkGrammarProperty(node) {
86409
+ if (ts.isComputedPropertyName(node.name) && ts.isBinaryExpression(node.name.expression) && node.name.expression.operatorToken.kind === 101 /* InKeyword */) {
86410
+ return grammarErrorOnNode(node.parent.members[0], ts.Diagnostics.A_mapped_type_may_not_declare_properties_or_methods);
86411
+ }
86367
86412
  if (ts.isClassLike(node.parent)) {
86368
86413
  if (ts.isStringLiteral(node.name) && node.name.text === "constructor") {
86369
86414
  return grammarErrorOnNode(node.name, ts.Diagnostics.Classes_may_not_have_a_field_named_constructor);
@@ -86383,7 +86428,7 @@ var ts;
86383
86428
  return grammarErrorOnNode(node.initializer, ts.Diagnostics.An_interface_property_cannot_have_an_initializer);
86384
86429
  }
86385
86430
  }
86386
- else if (node.parent.kind === 181 /* TypeLiteral */) {
86431
+ else if (ts.isTypeLiteralNode(node.parent)) {
86387
86432
  if (checkGrammarForInvalidDynamicName(node.name, ts.Diagnostics.A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type)) {
86388
86433
  return true;
86389
86434
  }
@@ -87060,7 +87105,7 @@ var ts;
87060
87105
  return factory.updateIndexedAccessTypeNode(node, nodeVisitor(node.objectType, visitor, ts.isTypeNode), nodeVisitor(node.indexType, visitor, ts.isTypeNode));
87061
87106
  case 194 /* MappedType */:
87062
87107
  ts.Debug.type(node);
87063
- return factory.updateMappedTypeNode(node, nodeVisitor(node.readonlyToken, tokenVisitor, ts.isReadonlyKeywordOrPlusOrMinusToken), nodeVisitor(node.typeParameter, visitor, ts.isTypeParameterDeclaration), nodeVisitor(node.nameType, visitor, ts.isTypeNode), nodeVisitor(node.questionToken, tokenVisitor, ts.isQuestionOrPlusOrMinusToken), nodeVisitor(node.type, visitor, ts.isTypeNode));
87108
+ return factory.updateMappedTypeNode(node, nodeVisitor(node.readonlyToken, tokenVisitor, ts.isReadonlyKeywordOrPlusOrMinusToken), nodeVisitor(node.typeParameter, visitor, ts.isTypeParameterDeclaration), nodeVisitor(node.nameType, visitor, ts.isTypeNode), nodeVisitor(node.questionToken, tokenVisitor, ts.isQuestionOrPlusOrMinusToken), nodeVisitor(node.type, visitor, ts.isTypeNode), nodesVisitor(node.members, visitor, ts.isTypeElement));
87064
87109
  case 195 /* LiteralType */:
87065
87110
  ts.Debug.type(node);
87066
87111
  return factory.updateLiteralTypeNode(node, nodeVisitor(node.literal, visitor, ts.isExpression));
@@ -125148,9 +125193,9 @@ var ts;
125148
125193
  return displayPart(text, ts.SymbolDisplayPartKind.linkText);
125149
125194
  }
125150
125195
  ts.linkTextPart = linkTextPart;
125151
- function linkNamePart(name, target) {
125196
+ function linkNamePart(text, target) {
125152
125197
  return {
125153
- text: ts.getTextOfNode(name),
125198
+ text: text,
125154
125199
  kind: ts.SymbolDisplayPartKind[ts.SymbolDisplayPartKind.linkName],
125155
125200
  target: {
125156
125201
  fileName: ts.getSourceFileOfNode(target).fileName,
@@ -125175,20 +125220,41 @@ var ts;
125175
125220
  }
125176
125221
  else {
125177
125222
  var symbol = checker === null || checker === void 0 ? void 0 : checker.getSymbolAtLocation(link.name);
125223
+ var suffix = findLinkNameEnd(link.text);
125224
+ var name = ts.getTextOfNode(link.name) + link.text.slice(0, suffix);
125225
+ var text = link.text.slice(suffix);
125178
125226
  var decl = (symbol === null || symbol === void 0 ? void 0 : symbol.valueDeclaration) || ((_a = symbol === null || symbol === void 0 ? void 0 : symbol.declarations) === null || _a === void 0 ? void 0 : _a[0]);
125179
125227
  if (decl) {
125180
- parts.push(linkNamePart(link.name, decl));
125181
- if (link.text)
125182
- parts.push(linkTextPart(link.text));
125228
+ parts.push(linkNamePart(name, decl));
125229
+ if (text)
125230
+ parts.push(linkTextPart(text));
125183
125231
  }
125184
125232
  else {
125185
- parts.push(linkTextPart(ts.getTextOfNode(link.name) + " " + link.text));
125233
+ parts.push(linkTextPart(name + (suffix ? "" : " ") + text));
125186
125234
  }
125187
125235
  }
125188
125236
  parts.push(linkPart("}"));
125189
125237
  return parts;
125190
125238
  }
125191
125239
  ts.buildLinkParts = buildLinkParts;
125240
+ function findLinkNameEnd(text) {
125241
+ if (text.indexOf("()") === 0)
125242
+ return 2;
125243
+ if (text[0] !== "<")
125244
+ return 0;
125245
+ var brackets = 0;
125246
+ var i = 0;
125247
+ while (i < text.length) {
125248
+ if (text[i] === "<")
125249
+ brackets++;
125250
+ if (text[i] === ">")
125251
+ brackets--;
125252
+ i++;
125253
+ if (!brackets)
125254
+ return i;
125255
+ }
125256
+ return 0;
125257
+ }
125192
125258
  var carriageReturnLineFeed = "\r\n";
125193
125259
  /**
125194
125260
  * The default is CRLF.
@@ -148109,7 +148175,11 @@ var ts;
148109
148175
  }
148110
148176
  function doChange(changes, sourceFile, _a) {
148111
148177
  var container = _a.container, typeNode = _a.typeNode, constraint = _a.constraint, name = _a.name;
148112
- changes.replaceNode(sourceFile, container, ts.factory.createMappedTypeNode(/*readonlyToken*/ undefined, ts.factory.createTypeParameterDeclaration(name, ts.factory.createTypeReferenceNode(constraint)), /*nameType*/ undefined, /*questionToken*/ undefined, typeNode));
148178
+ changes.replaceNode(sourceFile, container, ts.factory.createMappedTypeNode(
148179
+ /*readonlyToken*/ undefined, ts.factory.createTypeParameterDeclaration(name, ts.factory.createTypeReferenceNode(constraint)),
148180
+ /*nameType*/ undefined,
148181
+ /*questionToken*/ undefined, typeNode,
148182
+ /*members*/ undefined));
148113
148183
  }
148114
148184
  })(codefix = ts.codefix || (ts.codefix = {}));
148115
148185
  })(ts || (ts = {}));
@@ -153707,7 +153777,8 @@ var ts;
153707
153777
  var parameter = ts.first(indexSignature.parameters);
153708
153778
  var mappedTypeParameter = ts.factory.createTypeParameterDeclaration(ts.cast(parameter.name, ts.isIdentifier), parameter.type);
153709
153779
  var mappedIntersectionType = ts.factory.createMappedTypeNode(ts.hasEffectiveReadonlyModifier(indexSignature) ? ts.factory.createModifier(144 /* ReadonlyKeyword */) : undefined, mappedTypeParameter,
153710
- /*nameType*/ undefined, indexSignature.questionToken, indexSignature.type);
153780
+ /*nameType*/ undefined, indexSignature.questionToken, indexSignature.type,
153781
+ /*members*/ undefined);
153711
153782
  var intersectionType = ts.factory.createIntersectionTypeNode(__spreadArray(__spreadArray(__spreadArray([], ts.getAllSuperTypeNodes(container), true), [
153712
153783
  mappedIntersectionType
153713
153784
  ], false), (otherMembers.length ? [ts.factory.createTypeLiteralNode(otherMembers)] : ts.emptyArray), true));
@@ -973,6 +973,8 @@ declare namespace ts {
973
973
  readonly nameType?: TypeNode;
974
974
  readonly questionToken?: QuestionToken | PlusToken | MinusToken;
975
975
  readonly type?: TypeNode;
976
+ /** Used only to produce grammar errors */
977
+ readonly members?: NodeArray<TypeElement>;
976
978
  }
977
979
  export interface LiteralTypeNode extends TypeNode {
978
980
  readonly kind: SyntaxKind.LiteralType;
@@ -3420,8 +3422,8 @@ declare namespace ts {
3420
3422
  updateTypeOperatorNode(node: TypeOperatorNode, type: TypeNode): TypeOperatorNode;
3421
3423
  createIndexedAccessTypeNode(objectType: TypeNode, indexType: TypeNode): IndexedAccessTypeNode;
3422
3424
  updateIndexedAccessTypeNode(node: IndexedAccessTypeNode, objectType: TypeNode, indexType: TypeNode): IndexedAccessTypeNode;
3423
- createMappedTypeNode(readonlyToken: ReadonlyKeyword | PlusToken | MinusToken | undefined, typeParameter: TypeParameterDeclaration, nameType: TypeNode | undefined, questionToken: QuestionToken | PlusToken | MinusToken | undefined, type: TypeNode | undefined): MappedTypeNode;
3424
- updateMappedTypeNode(node: MappedTypeNode, readonlyToken: ReadonlyKeyword | PlusToken | MinusToken | undefined, typeParameter: TypeParameterDeclaration, nameType: TypeNode | undefined, questionToken: QuestionToken | PlusToken | MinusToken | undefined, type: TypeNode | undefined): MappedTypeNode;
3425
+ createMappedTypeNode(readonlyToken: ReadonlyKeyword | PlusToken | MinusToken | undefined, typeParameter: TypeParameterDeclaration, nameType: TypeNode | undefined, questionToken: QuestionToken | PlusToken | MinusToken | undefined, type: TypeNode | undefined, members: NodeArray<TypeElement> | undefined): MappedTypeNode;
3426
+ updateMappedTypeNode(node: MappedTypeNode, readonlyToken: ReadonlyKeyword | PlusToken | MinusToken | undefined, typeParameter: TypeParameterDeclaration, nameType: TypeNode | undefined, questionToken: QuestionToken | PlusToken | MinusToken | undefined, type: TypeNode | undefined, members: NodeArray<TypeElement> | undefined): MappedTypeNode;
3425
3427
  createLiteralTypeNode(literal: LiteralTypeNode["literal"]): LiteralTypeNode;
3426
3428
  updateLiteralTypeNode(node: LiteralTypeNode, literal: LiteralTypeNode["literal"]): LiteralTypeNode;
3427
3429
  createTemplateLiteralType(head: TemplateHead, templateSpans: readonly TemplateLiteralTypeSpan[]): TemplateLiteralTypeNode;
@@ -6978,9 +6980,9 @@ declare namespace ts {
6978
6980
  /** @deprecated Use `factory.updateIndexedAccessTypeNode` or the factory supplied by your transformation context instead. */
6979
6981
  const updateIndexedAccessTypeNode: (node: IndexedAccessTypeNode, objectType: TypeNode, indexType: TypeNode) => IndexedAccessTypeNode;
6980
6982
  /** @deprecated Use `factory.createMappedTypeNode` or the factory supplied by your transformation context instead. */
6981
- const createMappedTypeNode: (readonlyToken: ReadonlyKeyword | PlusToken | MinusToken | undefined, typeParameter: TypeParameterDeclaration, nameType: TypeNode | undefined, questionToken: QuestionToken | PlusToken | MinusToken | undefined, type: TypeNode | undefined) => MappedTypeNode;
6983
+ const createMappedTypeNode: (readonlyToken: ReadonlyKeyword | PlusToken | MinusToken | undefined, typeParameter: TypeParameterDeclaration, nameType: TypeNode | undefined, questionToken: QuestionToken | PlusToken | MinusToken | undefined, type: TypeNode | undefined, members: NodeArray<TypeElement> | undefined) => MappedTypeNode;
6982
6984
  /** @deprecated Use `factory.updateMappedTypeNode` or the factory supplied by your transformation context instead. */
6983
- const updateMappedTypeNode: (node: MappedTypeNode, readonlyToken: ReadonlyKeyword | PlusToken | MinusToken | undefined, typeParameter: TypeParameterDeclaration, nameType: TypeNode | undefined, questionToken: QuestionToken | PlusToken | MinusToken | undefined, type: TypeNode | undefined) => MappedTypeNode;
6985
+ const updateMappedTypeNode: (node: MappedTypeNode, readonlyToken: ReadonlyKeyword | PlusToken | MinusToken | undefined, typeParameter: TypeParameterDeclaration, nameType: TypeNode | undefined, questionToken: QuestionToken | PlusToken | MinusToken | undefined, type: TypeNode | undefined, members: NodeArray<TypeElement> | undefined) => MappedTypeNode;
6984
6986
  /** @deprecated Use `factory.createLiteralTypeNode` or the factory supplied by your transformation context instead. */
6985
6987
  const createLiteralTypeNode: (literal: LiteralExpression | BooleanLiteral | PrefixUnaryExpression | NullLiteral) => LiteralTypeNode;
6986
6988
  /** @deprecated Use `factory.updateLiteralTypeNode` or the factory supplied by your transformation context instead. */