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/tsserver.js CHANGED
@@ -100,7 +100,7 @@ var ts;
100
100
  // The following is baselined as a literal template type without intervention
101
101
  /** The version of the TypeScript compiler release */
102
102
  // eslint-disable-next-line @typescript-eslint/no-inferrable-types
103
- ts.version = ts.versionMajorMinor + ".0-dev.20211017";
103
+ ts.version = ts.versionMajorMinor + ".0-dev.20211021";
104
104
  /* @internal */
105
105
  var Comparison;
106
106
  (function (Comparison) {
@@ -9341,6 +9341,7 @@ var ts;
9341
9341
  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}';`"),
9342
9342
  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."),
9343
9343
  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."),
9344
+ 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."),
9344
9345
  You_cannot_rename_this_element: diag(8000, ts.DiagnosticCategory.Error, "You_cannot_rename_this_element_8000", "You cannot rename this element."),
9345
9346
  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."),
9346
9347
  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."),
@@ -22905,24 +22906,26 @@ var ts;
22905
22906
  : node;
22906
22907
  }
22907
22908
  // @api
22908
- function createMappedTypeNode(readonlyToken, typeParameter, nameType, questionToken, type) {
22909
+ function createMappedTypeNode(readonlyToken, typeParameter, nameType, questionToken, type, members) {
22909
22910
  var node = createBaseNode(194 /* MappedType */);
22910
22911
  node.readonlyToken = readonlyToken;
22911
22912
  node.typeParameter = typeParameter;
22912
22913
  node.nameType = nameType;
22913
22914
  node.questionToken = questionToken;
22914
22915
  node.type = type;
22916
+ node.members = members && createNodeArray(members);
22915
22917
  node.transformFlags = 1 /* ContainsTypeScript */;
22916
22918
  return node;
22917
22919
  }
22918
22920
  // @api
22919
- function updateMappedTypeNode(node, readonlyToken, typeParameter, nameType, questionToken, type) {
22921
+ function updateMappedTypeNode(node, readonlyToken, typeParameter, nameType, questionToken, type, members) {
22920
22922
  return node.readonlyToken !== readonlyToken
22921
22923
  || node.typeParameter !== typeParameter
22922
22924
  || node.nameType !== nameType
22923
22925
  || node.questionToken !== questionToken
22924
22926
  || node.type !== type
22925
- ? update(createMappedTypeNode(readonlyToken, typeParameter, nameType, questionToken, type), node)
22927
+ || node.members !== members
22928
+ ? update(createMappedTypeNode(readonlyToken, typeParameter, nameType, questionToken, type, members), node)
22926
22929
  : node;
22927
22930
  }
22928
22931
  // @api
@@ -29795,7 +29798,8 @@ var ts;
29795
29798
  visitNode(cbNode, node.typeParameter) ||
29796
29799
  visitNode(cbNode, node.nameType) ||
29797
29800
  visitNode(cbNode, node.questionToken) ||
29798
- visitNode(cbNode, node.type);
29801
+ visitNode(cbNode, node.type) ||
29802
+ visitNodes(cbNode, cbNodes, node.members);
29799
29803
  case 195 /* LiteralType */:
29800
29804
  return visitNode(cbNode, node.literal);
29801
29805
  case 196 /* NamedTupleMember */:
@@ -32685,8 +32689,9 @@ var ts;
32685
32689
  }
32686
32690
  var type = parseTypeAnnotation();
32687
32691
  parseSemicolon();
32692
+ var members = parseList(4 /* TypeMembers */, parseTypeMember);
32688
32693
  parseExpected(19 /* CloseBraceToken */);
32689
- return finishNode(factory.createMappedTypeNode(readonlyToken, typeParameter, nameType, questionToken, type), pos);
32694
+ return finishNode(factory.createMappedTypeNode(readonlyToken, typeParameter, nameType, questionToken, type, members), pos);
32690
32695
  }
32691
32696
  function parseTupleElementType() {
32692
32697
  var pos = getNodePos();
@@ -37973,7 +37978,7 @@ var ts;
37973
37978
  var ts;
37974
37979
  (function (ts) {
37975
37980
  /* @internal */
37976
- ts.compileOnSaveCommandLineOption = { name: "compileOnSave", type: "boolean" };
37981
+ ts.compileOnSaveCommandLineOption = { name: "compileOnSave", type: "boolean", defaultValueDescription: "false" };
37977
37982
  var jsxOptionMap = new ts.Map(ts.getEntries({
37978
37983
  "preserve": 1 /* Preserve */,
37979
37984
  "react-native": 3 /* ReactNative */,
@@ -38110,6 +38115,7 @@ var ts;
38110
38115
  type: "boolean",
38111
38116
  category: ts.Diagnostics.Watch_and_Build_Modes,
38112
38117
  description: ts.Diagnostics.Synchronously_call_callbacks_and_update_the_state_of_directory_watchers_on_platforms_that_don_t_support_recursive_watching_natively,
38118
+ defaultValueDescription: "false",
38113
38119
  },
38114
38120
  {
38115
38121
  name: "excludeDirectories",
@@ -38145,11 +38151,13 @@ var ts;
38145
38151
  showInSimplifiedHelpView: true,
38146
38152
  category: ts.Diagnostics.Command_line_Options,
38147
38153
  description: ts.Diagnostics.Print_this_message,
38154
+ defaultValueDescription: "false",
38148
38155
  },
38149
38156
  {
38150
38157
  name: "help",
38151
38158
  shortName: "?",
38152
- type: "boolean"
38159
+ type: "boolean",
38160
+ defaultValueDescription: "false",
38153
38161
  },
38154
38162
  {
38155
38163
  name: "watch",
@@ -38159,6 +38167,7 @@ var ts;
38159
38167
  isCommandLineOnly: true,
38160
38168
  category: ts.Diagnostics.Command_line_Options,
38161
38169
  description: ts.Diagnostics.Watch_input_files,
38170
+ defaultValueDescription: "false",
38162
38171
  },
38163
38172
  {
38164
38173
  name: "preserveWatchOutput",
@@ -38166,7 +38175,7 @@ var ts;
38166
38175
  showInSimplifiedHelpView: false,
38167
38176
  category: ts.Diagnostics.Output_Formatting,
38168
38177
  description: ts.Diagnostics.Disable_wiping_the_console_in_watch_mode,
38169
- defaultValueDescription: "n/a"
38178
+ defaultValueDescription: "false",
38170
38179
  },
38171
38180
  {
38172
38181
  name: "listFiles",
@@ -38179,7 +38188,8 @@ var ts;
38179
38188
  name: "explainFiles",
38180
38189
  type: "boolean",
38181
38190
  category: ts.Diagnostics.Compiler_Diagnostics,
38182
- description: ts.Diagnostics.Print_files_read_during_the_compilation_including_why_it_was_included
38191
+ description: ts.Diagnostics.Print_files_read_during_the_compilation_including_why_it_was_included,
38192
+ defaultValueDescription: "false",
38183
38193
  },
38184
38194
  {
38185
38195
  name: "listEmittedFiles",
@@ -38250,7 +38260,8 @@ var ts;
38250
38260
  affectsSemanticDiagnostics: true,
38251
38261
  affectsEmit: true,
38252
38262
  category: ts.Diagnostics.Watch_and_Build_Modes,
38253
- 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
38263
+ 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,
38264
+ defaultValueDescription: "false",
38254
38265
  },
38255
38266
  {
38256
38267
  name: "locale",
@@ -38295,6 +38306,7 @@ var ts;
38295
38306
  showInSimplifiedHelpView: true,
38296
38307
  category: ts.Diagnostics.Command_line_Options,
38297
38308
  description: ts.Diagnostics.Show_all_compiler_options,
38309
+ defaultValueDescription: "false",
38298
38310
  },
38299
38311
  {
38300
38312
  name: "version",
@@ -38303,6 +38315,7 @@ var ts;
38303
38315
  showInSimplifiedHelpView: true,
38304
38316
  category: ts.Diagnostics.Command_line_Options,
38305
38317
  description: ts.Diagnostics.Print_the_compiler_s_version,
38318
+ defaultValueDescription: "false",
38306
38319
  },
38307
38320
  {
38308
38321
  name: "init",
@@ -38310,6 +38323,7 @@ var ts;
38310
38323
  showInSimplifiedHelpView: true,
38311
38324
  category: ts.Diagnostics.Command_line_Options,
38312
38325
  description: ts.Diagnostics.Initializes_a_TypeScript_project_and_creates_a_tsconfig_json_file,
38326
+ defaultValueDescription: "false",
38313
38327
  },
38314
38328
  {
38315
38329
  name: "project",
@@ -38327,7 +38341,8 @@ var ts;
38327
38341
  shortName: "b",
38328
38342
  showInSimplifiedHelpView: true,
38329
38343
  category: ts.Diagnostics.Command_line_Options,
38330
- description: ts.Diagnostics.Build_one_or_more_projects_and_their_dependencies_if_out_of_date
38344
+ description: ts.Diagnostics.Build_one_or_more_projects_and_their_dependencies_if_out_of_date,
38345
+ defaultValueDescription: "false",
38331
38346
  },
38332
38347
  {
38333
38348
  name: "showConfig",
@@ -38335,7 +38350,8 @@ var ts;
38335
38350
  showInSimplifiedHelpView: true,
38336
38351
  category: ts.Diagnostics.Command_line_Options,
38337
38352
  isCommandLineOnly: true,
38338
- description: ts.Diagnostics.Print_the_final_configuration_instead_of_building
38353
+ description: ts.Diagnostics.Print_the_final_configuration_instead_of_building,
38354
+ defaultValueDescription: "false",
38339
38355
  },
38340
38356
  {
38341
38357
  name: "listFilesOnly",
@@ -38344,7 +38360,8 @@ var ts;
38344
38360
  affectsSemanticDiagnostics: true,
38345
38361
  affectsEmit: true,
38346
38362
  isCommandLineOnly: true,
38347
- description: ts.Diagnostics.Print_names_of_files_that_are_part_of_the_compilation_and_then_stop_processing
38363
+ description: ts.Diagnostics.Print_names_of_files_that_are_part_of_the_compilation_and_then_stop_processing,
38364
+ defaultValueDescription: "false",
38348
38365
  },
38349
38366
  // Basic
38350
38367
  ts.targetOptionDeclaration,
@@ -38464,7 +38481,6 @@ var ts;
38464
38481
  category: ts.Diagnostics.Emit,
38465
38482
  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,
38466
38483
  transpileOptionValue: undefined,
38467
- defaultValueDescription: "n/a"
38468
38484
  },
38469
38485
  {
38470
38486
  name: "outDir",
@@ -38475,7 +38491,6 @@ var ts;
38475
38491
  showInSimplifiedHelpView: true,
38476
38492
  category: ts.Diagnostics.Emit,
38477
38493
  description: ts.Diagnostics.Specify_an_output_folder_for_all_emitted_files,
38478
- defaultValueDescription: "n/a"
38479
38494
  },
38480
38495
  {
38481
38496
  name: "rootDir",
@@ -38632,6 +38647,7 @@ var ts;
38632
38647
  strictFlag: true,
38633
38648
  category: ts.Diagnostics.Type_Checking,
38634
38649
  description: ts.Diagnostics.Type_catch_clause_variables_as_unknown_instead_of_any,
38650
+ defaultValueDescription: "false",
38635
38651
  },
38636
38652
  {
38637
38653
  name: "alwaysStrict",
@@ -38664,7 +38680,8 @@ var ts;
38664
38680
  type: "boolean",
38665
38681
  affectsSemanticDiagnostics: true,
38666
38682
  category: ts.Diagnostics.Type_Checking,
38667
- description: ts.Diagnostics.Interpret_optional_property_types_as_written_rather_than_adding_undefined
38683
+ description: ts.Diagnostics.Interpret_optional_property_types_as_written_rather_than_adding_undefined,
38684
+ defaultValueDescription: "false",
38668
38685
  },
38669
38686
  {
38670
38687
  name: "noImplicitReturns",
@@ -38680,21 +38697,24 @@ var ts;
38680
38697
  affectsBindDiagnostics: true,
38681
38698
  affectsSemanticDiagnostics: true,
38682
38699
  category: ts.Diagnostics.Type_Checking,
38683
- description: ts.Diagnostics.Enable_error_reporting_for_fallthrough_cases_in_switch_statements
38700
+ description: ts.Diagnostics.Enable_error_reporting_for_fallthrough_cases_in_switch_statements,
38701
+ defaultValueDescription: "false",
38684
38702
  },
38685
38703
  {
38686
38704
  name: "noUncheckedIndexedAccess",
38687
38705
  type: "boolean",
38688
38706
  affectsSemanticDiagnostics: true,
38689
38707
  category: ts.Diagnostics.Type_Checking,
38690
- description: ts.Diagnostics.Include_undefined_in_index_signature_results
38708
+ description: ts.Diagnostics.Include_undefined_in_index_signature_results,
38709
+ defaultValueDescription: "false",
38691
38710
  },
38692
38711
  {
38693
38712
  name: "noImplicitOverride",
38694
38713
  type: "boolean",
38695
38714
  affectsSemanticDiagnostics: true,
38696
38715
  category: ts.Diagnostics.Type_Checking,
38697
- description: ts.Diagnostics.Ensure_overriding_members_in_derived_classes_are_marked_with_an_override_modifier
38716
+ description: ts.Diagnostics.Ensure_overriding_members_in_derived_classes_are_marked_with_an_override_modifier,
38717
+ defaultValueDescription: "false",
38698
38718
  },
38699
38719
  {
38700
38720
  name: "noPropertyAccessFromIndexSignature",
@@ -38803,7 +38823,7 @@ var ts;
38803
38823
  type: "boolean",
38804
38824
  category: ts.Diagnostics.Interop_Constraints,
38805
38825
  description: ts.Diagnostics.Disable_resolving_symlinks_to_their_realpath_This_correlates_to_the_same_flag_in_node,
38806
- defaultValueDescription: "n/a"
38826
+ defaultValueDescription: "false",
38807
38827
  },
38808
38828
  {
38809
38829
  name: "allowUmdGlobalAccess",
@@ -38852,7 +38872,8 @@ var ts;
38852
38872
  type: "boolean",
38853
38873
  affectsSemanticDiagnostics: true,
38854
38874
  category: ts.Diagnostics.Language_and_Environment,
38855
- description: ts.Diagnostics.Enable_experimental_support_for_TC39_stage_2_draft_decorators
38875
+ description: ts.Diagnostics.Enable_experimental_support_for_TC39_stage_2_draft_decorators,
38876
+ defaultValueDescription: "false",
38856
38877
  },
38857
38878
  {
38858
38879
  name: "emitDecoratorMetadata",
@@ -38860,7 +38881,8 @@ var ts;
38860
38881
  affectsSemanticDiagnostics: true,
38861
38882
  affectsEmit: true,
38862
38883
  category: ts.Diagnostics.Language_and_Environment,
38863
- description: ts.Diagnostics.Emit_design_type_metadata_for_decorated_declarations_in_source_files
38884
+ description: ts.Diagnostics.Emit_design_type_metadata_for_decorated_declarations_in_source_files,
38885
+ defaultValueDescription: "false",
38864
38886
  },
38865
38887
  // Advanced
38866
38888
  {
@@ -38903,7 +38925,6 @@ var ts;
38903
38925
  category: ts.Diagnostics.Backwards_Compatibility,
38904
38926
  paramType: ts.Diagnostics.FILE,
38905
38927
  transpileOptionValue: undefined,
38906
- defaultValueDescription: "n/a",
38907
38928
  description: ts.Diagnostics.Deprecated_setting_Use_outFile_instead,
38908
38929
  },
38909
38930
  {
@@ -38984,6 +39005,7 @@ var ts;
38984
39005
  affectsEmit: true,
38985
39006
  category: ts.Diagnostics.Emit,
38986
39007
  description: ts.Diagnostics.Disable_emitting_declarations_that_have_internal_in_their_JSDoc_comments,
39008
+ defaultValueDescription: "false",
38987
39009
  },
38988
39010
  {
38989
39011
  name: "disableSizeLimit",
@@ -38998,21 +39020,24 @@ var ts;
38998
39020
  type: "boolean",
38999
39021
  isTSConfigOnly: true,
39000
39022
  category: ts.Diagnostics.Projects,
39001
- description: ts.Diagnostics.Disable_preferring_source_files_instead_of_declaration_files_when_referencing_composite_projects
39023
+ description: ts.Diagnostics.Disable_preferring_source_files_instead_of_declaration_files_when_referencing_composite_projects,
39024
+ defaultValueDescription: "false",
39002
39025
  },
39003
39026
  {
39004
39027
  name: "disableSolutionSearching",
39005
39028
  type: "boolean",
39006
39029
  isTSConfigOnly: true,
39007
39030
  category: ts.Diagnostics.Projects,
39008
- description: ts.Diagnostics.Opt_a_project_out_of_multi_project_reference_checking_when_editing
39031
+ description: ts.Diagnostics.Opt_a_project_out_of_multi_project_reference_checking_when_editing,
39032
+ defaultValueDescription: "false",
39009
39033
  },
39010
39034
  {
39011
39035
  name: "disableReferencedProjectLoad",
39012
39036
  type: "boolean",
39013
39037
  isTSConfigOnly: true,
39014
39038
  category: ts.Diagnostics.Projects,
39015
- description: ts.Diagnostics.Reduce_the_number_of_projects_loaded_automatically_by_TypeScript
39039
+ description: ts.Diagnostics.Reduce_the_number_of_projects_loaded_automatically_by_TypeScript,
39040
+ defaultValueDescription: "false",
39016
39041
  },
39017
39042
  {
39018
39043
  name: "noImplicitUseStrict",
@@ -39045,7 +39070,7 @@ var ts;
39045
39070
  affectsEmit: true,
39046
39071
  category: ts.Diagnostics.Emit,
39047
39072
  description: ts.Diagnostics.Disable_erasing_const_enum_declarations_in_generated_code,
39048
- defaultValueDescription: "n/a"
39073
+ defaultValueDescription: "false",
39049
39074
  },
39050
39075
  {
39051
39076
  name: "declarationDir",
@@ -39056,7 +39081,6 @@ var ts;
39056
39081
  category: ts.Diagnostics.Emit,
39057
39082
  transpileOptionValue: undefined,
39058
39083
  description: ts.Diagnostics.Specify_the_output_directory_for_generated_declaration_files,
39059
- defaultValueDescription: "n/a"
39060
39084
  },
39061
39085
  {
39062
39086
  name: "skipLibCheck",
@@ -39138,6 +39162,7 @@ var ts;
39138
39162
  affectsEmit: true,
39139
39163
  category: ts.Diagnostics.Emit,
39140
39164
  description: ts.Diagnostics.Preserve_unused_imported_values_in_the_JavaScript_output_that_would_otherwise_be_removed,
39165
+ defaultValueDescription: "false",
39141
39166
  },
39142
39167
  {
39143
39168
  name: "keyofStringsOnly",
@@ -39185,27 +39210,31 @@ var ts;
39185
39210
  shortName: "v",
39186
39211
  category: ts.Diagnostics.Command_line_Options,
39187
39212
  description: ts.Diagnostics.Enable_verbose_logging,
39188
- type: "boolean"
39213
+ type: "boolean",
39214
+ defaultValueDescription: "false",
39189
39215
  },
39190
39216
  {
39191
39217
  name: "dry",
39192
39218
  shortName: "d",
39193
39219
  category: ts.Diagnostics.Command_line_Options,
39194
39220
  description: ts.Diagnostics.Show_what_would_be_built_or_deleted_if_specified_with_clean,
39195
- type: "boolean"
39221
+ type: "boolean",
39222
+ defaultValueDescription: "false",
39196
39223
  },
39197
39224
  {
39198
39225
  name: "force",
39199
39226
  shortName: "f",
39200
39227
  category: ts.Diagnostics.Command_line_Options,
39201
39228
  description: ts.Diagnostics.Build_all_projects_including_those_that_appear_to_be_up_to_date,
39202
- type: "boolean"
39229
+ type: "boolean",
39230
+ defaultValueDescription: "false",
39203
39231
  },
39204
39232
  {
39205
39233
  name: "clean",
39206
39234
  category: ts.Diagnostics.Command_line_Options,
39207
39235
  description: ts.Diagnostics.Delete_the_outputs_of_all_projects,
39208
- type: "boolean"
39236
+ type: "boolean",
39237
+ defaultValueDescription: "false",
39209
39238
  }
39210
39239
  ];
39211
39240
  /* @internal */
@@ -39218,10 +39247,12 @@ var ts;
39218
39247
  */
39219
39248
  name: "enableAutoDiscovery",
39220
39249
  type: "boolean",
39250
+ defaultValueDescription: "false",
39221
39251
  },
39222
39252
  {
39223
39253
  name: "enable",
39224
39254
  type: "boolean",
39255
+ defaultValueDescription: "false",
39225
39256
  },
39226
39257
  {
39227
39258
  name: "include",
@@ -39242,6 +39273,7 @@ var ts;
39242
39273
  {
39243
39274
  name: "disableFilenameBasedTypeAcquisition",
39244
39275
  type: "boolean",
39276
+ defaultValueDescription: "false",
39245
39277
  },
39246
39278
  ];
39247
39279
  /*@internal*/
@@ -50934,7 +50966,7 @@ var ts;
50934
50966
  var typeParameterNode = typeParameterToDeclarationWithConstraint(getTypeParameterFromMappedType(type), context, appropriateConstraintTypeNode);
50935
50967
  var nameTypeNode = type.declaration.nameType ? typeToTypeNodeHelper(getNameTypeFromMappedType(type), context) : undefined;
50936
50968
  var templateTypeNode = typeToTypeNodeHelper(removeMissingType(getTemplateTypeFromMappedType(type), !!(getMappedTypeModifiers(type) & 4 /* IncludeOptional */)), context);
50937
- var mappedTypeNode = ts.factory.createMappedTypeNode(readonlyToken, typeParameterNode, nameTypeNode, questionToken, templateTypeNode);
50969
+ var mappedTypeNode = ts.factory.createMappedTypeNode(readonlyToken, typeParameterNode, nameTypeNode, questionToken, templateTypeNode, /*members*/ undefined);
50938
50970
  context.approximateLength += 10;
50939
50971
  return ts.setEmitFlags(mappedTypeNode, 1 /* SingleLine */);
50940
50972
  }
@@ -67008,17 +67040,16 @@ var ts;
67008
67040
  var inferredType = void 0;
67009
67041
  var signature = context.signature;
67010
67042
  if (signature) {
67011
- var inferredCovariantType = inference.candidates ? getCovariantInference(inference, signature) : undefined;
67043
+ var inferredCovariantType_1 = inference.candidates ? getCovariantInference(inference, signature) : undefined;
67012
67044
  if (inference.contraCandidates) {
67013
- var inferredContravariantType = getContravariantInference(inference);
67014
67045
  // If we have both co- and contra-variant inferences, we prefer the contra-variant inference
67015
- // unless the co-variant inference is a subtype and not 'never'.
67016
- inferredType = inferredCovariantType && !(inferredCovariantType.flags & 131072 /* Never */) &&
67017
- isTypeSubtypeOf(inferredCovariantType, inferredContravariantType) ?
67018
- inferredCovariantType : inferredContravariantType;
67046
+ // unless the co-variant inference is a subtype of some contra-variant inference and not 'never'.
67047
+ inferredType = inferredCovariantType_1 && !(inferredCovariantType_1.flags & 131072 /* Never */) &&
67048
+ ts.some(inference.contraCandidates, function (t) { return isTypeSubtypeOf(inferredCovariantType_1, t); }) ?
67049
+ inferredCovariantType_1 : getContravariantInference(inference);
67019
67050
  }
67020
- else if (inferredCovariantType) {
67021
- inferredType = inferredCovariantType;
67051
+ else if (inferredCovariantType_1) {
67052
+ inferredType = inferredCovariantType_1;
67022
67053
  }
67023
67054
  else if (context.flags & 1 /* NoDefault */) {
67024
67055
  // We use silentNeverType as the wildcard that signals no inferences.
@@ -71142,6 +71173,10 @@ var ts;
71142
71173
  function checkComputedPropertyName(node) {
71143
71174
  var links = getNodeLinks(node.expression);
71144
71175
  if (!links.resolvedType) {
71176
+ if ((ts.isTypeLiteralNode(node.parent.parent) || ts.isClassLike(node.parent.parent) || ts.isInterfaceDeclaration(node.parent.parent))
71177
+ && ts.isBinaryExpression(node.expression) && node.expression.operatorToken.kind === 101 /* InKeyword */) {
71178
+ return links.resolvedType = errorType;
71179
+ }
71145
71180
  links.resolvedType = checkExpression(node.expression);
71146
71181
  // The computed property name of a non-static class field within a loop must be stored in a block-scoped binding.
71147
71182
  // (It needs to be bound at class evaluation time.)
@@ -78291,6 +78326,7 @@ var ts;
78291
78326
  checkIndexedAccessIndexType(getTypeFromIndexedAccessTypeNode(node), node);
78292
78327
  }
78293
78328
  function checkMappedType(node) {
78329
+ checkGrammarMappedType(node);
78294
78330
  checkSourceElement(node.typeParameter);
78295
78331
  checkSourceElement(node.nameType);
78296
78332
  checkSourceElement(node.type);
@@ -78307,6 +78343,12 @@ var ts;
78307
78343
  checkTypeAssignableTo(constraintType, keyofConstraintType, ts.getEffectiveConstraintOfTypeParameter(node.typeParameter));
78308
78344
  }
78309
78345
  }
78346
+ function checkGrammarMappedType(node) {
78347
+ var _a;
78348
+ if ((_a = node.members) === null || _a === void 0 ? void 0 : _a.length) {
78349
+ return grammarErrorOnNode(node.members[0], ts.Diagnostics.A_mapped_type_may_not_declare_properties_or_methods);
78350
+ }
78351
+ }
78310
78352
  function checkThisType(node) {
78311
78353
  getTypeFromThisTypeNode(node);
78312
78354
  }
@@ -86170,6 +86212,9 @@ var ts;
86170
86212
  }
86171
86213
  }
86172
86214
  function checkGrammarProperty(node) {
86215
+ if (ts.isComputedPropertyName(node.name) && ts.isBinaryExpression(node.name.expression) && node.name.expression.operatorToken.kind === 101 /* InKeyword */) {
86216
+ return grammarErrorOnNode(node.parent.members[0], ts.Diagnostics.A_mapped_type_may_not_declare_properties_or_methods);
86217
+ }
86173
86218
  if (ts.isClassLike(node.parent)) {
86174
86219
  if (ts.isStringLiteral(node.name) && node.name.text === "constructor") {
86175
86220
  return grammarErrorOnNode(node.name, ts.Diagnostics.Classes_may_not_have_a_field_named_constructor);
@@ -86189,7 +86234,7 @@ var ts;
86189
86234
  return grammarErrorOnNode(node.initializer, ts.Diagnostics.An_interface_property_cannot_have_an_initializer);
86190
86235
  }
86191
86236
  }
86192
- else if (node.parent.kind === 181 /* TypeLiteral */) {
86237
+ else if (ts.isTypeLiteralNode(node.parent)) {
86193
86238
  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)) {
86194
86239
  return true;
86195
86240
  }
@@ -86866,7 +86911,7 @@ var ts;
86866
86911
  return factory.updateIndexedAccessTypeNode(node, nodeVisitor(node.objectType, visitor, ts.isTypeNode), nodeVisitor(node.indexType, visitor, ts.isTypeNode));
86867
86912
  case 194 /* MappedType */:
86868
86913
  ts.Debug.type(node);
86869
- 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));
86914
+ 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));
86870
86915
  case 195 /* LiteralType */:
86871
86916
  ts.Debug.type(node);
86872
86917
  return factory.updateLiteralTypeNode(node, nodeVisitor(node.literal, visitor, ts.isExpression));
@@ -124566,9 +124611,9 @@ var ts;
124566
124611
  return displayPart(text, ts.SymbolDisplayPartKind.linkText);
124567
124612
  }
124568
124613
  ts.linkTextPart = linkTextPart;
124569
- function linkNamePart(name, target) {
124614
+ function linkNamePart(text, target) {
124570
124615
  return {
124571
- text: ts.getTextOfNode(name),
124616
+ text: text,
124572
124617
  kind: ts.SymbolDisplayPartKind[ts.SymbolDisplayPartKind.linkName],
124573
124618
  target: {
124574
124619
  fileName: ts.getSourceFileOfNode(target).fileName,
@@ -124593,20 +124638,41 @@ var ts;
124593
124638
  }
124594
124639
  else {
124595
124640
  var symbol = checker === null || checker === void 0 ? void 0 : checker.getSymbolAtLocation(link.name);
124641
+ var suffix = findLinkNameEnd(link.text);
124642
+ var name = ts.getTextOfNode(link.name) + link.text.slice(0, suffix);
124643
+ var text = link.text.slice(suffix);
124596
124644
  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]);
124597
124645
  if (decl) {
124598
- parts.push(linkNamePart(link.name, decl));
124599
- if (link.text)
124600
- parts.push(linkTextPart(link.text));
124646
+ parts.push(linkNamePart(name, decl));
124647
+ if (text)
124648
+ parts.push(linkTextPart(text));
124601
124649
  }
124602
124650
  else {
124603
- parts.push(linkTextPart(ts.getTextOfNode(link.name) + " " + link.text));
124651
+ parts.push(linkTextPart(name + (suffix ? "" : " ") + text));
124604
124652
  }
124605
124653
  }
124606
124654
  parts.push(linkPart("}"));
124607
124655
  return parts;
124608
124656
  }
124609
124657
  ts.buildLinkParts = buildLinkParts;
124658
+ function findLinkNameEnd(text) {
124659
+ if (text.indexOf("()") === 0)
124660
+ return 2;
124661
+ if (text[0] !== "<")
124662
+ return 0;
124663
+ var brackets = 0;
124664
+ var i = 0;
124665
+ while (i < text.length) {
124666
+ if (text[i] === "<")
124667
+ brackets++;
124668
+ if (text[i] === ">")
124669
+ brackets--;
124670
+ i++;
124671
+ if (!brackets)
124672
+ return i;
124673
+ }
124674
+ return 0;
124675
+ }
124610
124676
  var carriageReturnLineFeed = "\r\n";
124611
124677
  /**
124612
124678
  * The default is CRLF.
@@ -147527,7 +147593,11 @@ var ts;
147527
147593
  }
147528
147594
  function doChange(changes, sourceFile, _a) {
147529
147595
  var container = _a.container, typeNode = _a.typeNode, constraint = _a.constraint, name = _a.name;
147530
- changes.replaceNode(sourceFile, container, ts.factory.createMappedTypeNode(/*readonlyToken*/ undefined, ts.factory.createTypeParameterDeclaration(name, ts.factory.createTypeReferenceNode(constraint)), /*nameType*/ undefined, /*questionToken*/ undefined, typeNode));
147596
+ changes.replaceNode(sourceFile, container, ts.factory.createMappedTypeNode(
147597
+ /*readonlyToken*/ undefined, ts.factory.createTypeParameterDeclaration(name, ts.factory.createTypeReferenceNode(constraint)),
147598
+ /*nameType*/ undefined,
147599
+ /*questionToken*/ undefined, typeNode,
147600
+ /*members*/ undefined));
147531
147601
  }
147532
147602
  })(codefix = ts.codefix || (ts.codefix = {}));
147533
147603
  })(ts || (ts = {}));
@@ -153125,7 +153195,8 @@ var ts;
153125
153195
  var parameter = ts.first(indexSignature.parameters);
153126
153196
  var mappedTypeParameter = ts.factory.createTypeParameterDeclaration(ts.cast(parameter.name, ts.isIdentifier), parameter.type);
153127
153197
  var mappedIntersectionType = ts.factory.createMappedTypeNode(ts.hasEffectiveReadonlyModifier(indexSignature) ? ts.factory.createModifier(144 /* ReadonlyKeyword */) : undefined, mappedTypeParameter,
153128
- /*nameType*/ undefined, indexSignature.questionToken, indexSignature.type);
153198
+ /*nameType*/ undefined, indexSignature.questionToken, indexSignature.type,
153199
+ /*members*/ undefined);
153129
153200
  var intersectionType = ts.factory.createIntersectionTypeNode(__spreadArray(__spreadArray(__spreadArray([], ts.getAllSuperTypeNodes(container), true), [
153130
153201
  mappedIntersectionType
153131
153202
  ], 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;
@@ -10779,9 +10781,9 @@ declare namespace ts {
10779
10781
  /** @deprecated Use `factory.updateIndexedAccessTypeNode` or the factory supplied by your transformation context instead. */
10780
10782
  const updateIndexedAccessTypeNode: (node: IndexedAccessTypeNode, objectType: TypeNode, indexType: TypeNode) => IndexedAccessTypeNode;
10781
10783
  /** @deprecated Use `factory.createMappedTypeNode` or the factory supplied by your transformation context instead. */
10782
- const createMappedTypeNode: (readonlyToken: ReadonlyKeyword | PlusToken | MinusToken | undefined, typeParameter: TypeParameterDeclaration, nameType: TypeNode | undefined, questionToken: QuestionToken | PlusToken | MinusToken | undefined, type: TypeNode | undefined) => MappedTypeNode;
10784
+ 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;
10783
10785
  /** @deprecated Use `factory.updateMappedTypeNode` or the factory supplied by your transformation context instead. */
10784
- const updateMappedTypeNode: (node: MappedTypeNode, readonlyToken: ReadonlyKeyword | PlusToken | MinusToken | undefined, typeParameter: TypeParameterDeclaration, nameType: TypeNode | undefined, questionToken: QuestionToken | PlusToken | MinusToken | undefined, type: TypeNode | undefined) => MappedTypeNode;
10786
+ 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;
10785
10787
  /** @deprecated Use `factory.createLiteralTypeNode` or the factory supplied by your transformation context instead. */
10786
10788
  const createLiteralTypeNode: (literal: LiteralExpression | BooleanLiteral | PrefixUnaryExpression | NullLiteral) => LiteralTypeNode;
10787
10789
  /** @deprecated Use `factory.updateLiteralTypeNode` or the factory supplied by your transformation context instead. */