Skip to content

Commit 8475e30

Browse files
authored
Port master into release-2.6 10/19 (#19348)
* Adding test case where opened file included in project is not added to ref count of configured project * Fix the way configured project's reference is managed so that the open file * Do not watch root folders for failed lookup locations and effective type roots Fixes #19170 * LEGO: check in for master to temporary branch. * LEGO: check in for master to temporary branch. * Mark fresh spread objects w/ContainsObjectLiteral * Test excess property checks of spreads of unions. * Add exported members of all project files in the global completion list (#19069) * checker.ts: Remove null check on symbols * tsserverProjectSystem.ts: add two tests * client.ts, completions.ts, types.ts: Add codeActions member to CompletionEntryDetails * protocol.ts, session.ts: Add codeActions member to CompletionEntryDetails protocol * protocol.ts, session.ts, types.ts: add hasAction to CompletionEntry * session.ts, services.ts, types.ts: Add formattingOptions parameter to getCompletionEntryDetails * completions.ts: define SymbolOriginInfo type * completions.ts, services.ts: Add allSourceFiles parameter to getCompletionsAtPosition * completions.ts, services.ts: Plumb allSourceFiles into new function getSymbolsFromOtherSourceFileExports inside getCompletionData * completions.ts: add symbolToOriginInfoMap parameter to getCompletionEntriesFromSymbols and to return value of getCompletionData * utilities.ts: Add getOtherModuleSymbols, getUniqueSymbolIdAsString, getUniqueSymbolId * completions.ts: Set CompletionEntry.hasAction when symbol is found in symbolToOriginInfoMap (meaning there's an import action) * completions.ts: Populate list with possible exports (implement getSymbolsFromOtherSourceFileExports) * completions.ts, services.ts: Plumb host and rulesProvider into getCompletionEntryDetails * completions.ts: Add TODO comment * importFixes.ts: Add types ImportDeclarationMap and ImportCodeFixContext * Move getImportDeclarations into getCodeActionForImport, immediately after the implementation * importFixes.ts: Move createChangeTracker into getCodeActionForImport, immediately after getImportDeclarations * importFixes.ts: Add convertToImportCodeFixContext function and reference it from the getCodeActions lambda * importFixes.ts: Add context: ImportCodeFixContext parameter to getCodeActionForImport, update call sites, destructure it, use compilerOptions in getModuleSpecifierForNewImport * importFixes.ts: Remove moduleSymbol parameter from getImportDeclarations and use the ambient one * importFixes.ts: Use cachedImportDeclarations from context in getCodeActionForImport * importFixes.ts: Move createCodeAction out, immediately above convertToImportCodeFixContext * Move the declaration for lastImportDeclaration out of the getCodeActions lambda into getCodeActionForImport * importFixes.ts: Use symbolToken in getCodeActionForImport * importFixes.ts: Remove useCaseSensitiveFileNames altogether from getCodeActions lambda * importFixes.ts: Remove local getUniqueSymbolId function and add checker parameter to calls to it * importFixes.ts: Move getCodeActionForImport out into an export, immediately below convertToImportCodeFixContext * completions.ts: In getCompletionEntryDetails, if there's symbolOriginInfo, call getCodeActionForImport * importFixes.ts: Create and use importFixContext within getCodeActions lambda * importFixes.ts: Use local newLineCharacter instead of context.newLineCharacter in getCodeActionForImport * importFixes.ts: Use local host instead of context.host in getCodeActionForImport * importFixes.ts: Remove dummy getCanonicalFileName line * Filter symbols after gathering exports instead of before * Lint * Test, fix bugs, refactor * Suggestions from code review * Update api baseline * Fix bug if previousToken is not an Identifier * Replace `startsWith` with `stringContainsCharactersInOrder` * Dont try to run unit tests with rwc tests again (#19240) * In tsserver, indent logged JSON (#19080) * noUnusedLocals: Warn for recursive call to private method (#18920) * Added test for windows style paths watched directories * Handle when directory watcher is invoked on file change Fixes #19206 * Add quickfix and refactoring to install @types packages (#19130) * Add quickfix and refactoring to install @types packages * Move `validatePackageName` to `jsTyping.ts` * Remove combinePaths overloads * Respond to code review * Update api baselines * Use native PromiseConstructor * Return false instead of undefined * Remove getProjectRootPath * Update api * This wasnt required before... (#19262) * Collapse jsdoc annotation refactors to one Previously there were two, and two always fired. * Update baselines * Fix #19257: Ensure a generated signature has a return type (#19264) * Fix #19257: Ensure a generated signature has a return type * Ensure generated properties have types * Use the same context for multiple inferences to the same property access * Respect newLine compiler option in language service output (#19279) * LEGO: check in for master to temporary branch. * LEGO: check in for master to temporary branch. * LEGO: check in for master to temporary branch. * Disambiguate same-named refactors using description (#19267) Disambiguate same-named refactors using actionName * Set the scriptKind from the host configuration if present * Update API baselines * Remove erroneous error for JSDoc object literals appears with checkJS. * Update annotateWithTypeFromJSDoc tests 1. Object literals are single-line now. 2. Index signatures transform to TS index signatures. 3. The refactoring is only available when it could add types. * Add a better test for jsdoc index signatures. The test case shows that the errorenous error no longer appears. * Fix bugs in jsdoc annotation refactor 1. Transform index signatures to TS index signatures. 2. Print object literals on a single line. 3. Only offer the refactor when it could add types. (There must not be a type annotation already, and there must be a JSDoc that applies.) * Move isJSDocIndexSignature to utilities * Add failing testcase where when d.ts file is in program, the files get emitted multiple times with --out setting * Modify api to emit affected files using callback instead of generating in memory output Also marking few apis introduced during watch improvements changes that are suppose to be internal for now * Use get files affected by internally and hence use file paths as input * Simplify emit changed files further Also use source file version as the signature of declaration file instead of computing it from text * Do not cache the semantic diagnostics when compiler options has --out since we would anyways get all fresh diagnostics * make getCurrentDirectory required (#19303) * LEGO: check in for master to temporary branch. * Actually use cached semantic diagnostics * Fix tsc-instrumented 1. Make recursiveCreateDirectory correctly handle relative paths. 2. Remove dependency on Harness 3. Correctly increment iocapture0, iocapture1, ... iocaptureN. 4. Stop double-nesting baseline files. * Fix lint * Fix #19270: ensure output name is a valid locale name (#19308) * Fix #19270: ensure output name is a valid locale name * Use const instead of var * Add comment * Fix typo * Split the concat logic for generatedLCGFile * findAllRefs: Support anonymous default export (#19302) * Fix undefined error using `getEffectiveTypeRoots` (#19300) * Remove extra blank line in logs (#19307) * Use Promise instead of PromiseLike (#19305) * Workaround for nonnull operator on indexed accesses (#19275) * Quick and dirty workaround * Add third case to show current behavior * Rename variable, replace elaboration from comment with links * Remove some unnecessary `undefined` checks in extractSymbol (#19256) * Fix "noStringLiteral" lint errors (#19310) * LEGO: check in for master to temporary branch. * Rename locale outputs * Update LKG
1 parent 50843b5 commit 8475e30

File tree

166 files changed

+18909
-13580
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

166 files changed

+18909
-13580
lines changed

Gulpfile.ts

+38-23
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ function possiblyQuote(cmd: string) {
8787
}
8888

8989
let useDebugMode = true;
90-
let host = cmdLineOptions["host"];
90+
let host = cmdLineOptions.host;
9191

9292
// Constants
9393
const compilerDirectory = "src/compiler/";
@@ -180,6 +180,23 @@ const libraryTargets = librarySourceMap.map(function(f) {
180180
return path.join(builtLocalDirectory, f.target);
181181
});
182182

183+
/**
184+
* .lcg file is what localization team uses to know what messages to localize.
185+
* The file is always generated in 'enu\diagnosticMessages.generated.json.lcg'
186+
*/
187+
const generatedLCGFile = path.join(builtLocalDirectory, "enu", "diagnosticMessages.generated.json.lcg");
188+
189+
/**
190+
* The localization target produces the two following transformations:
191+
* 1. 'src\loc\lcl\<locale>\diagnosticMessages.generated.json.lcl' => 'built\local\<locale>\diagnosticMessages.generated.json'
192+
* convert localized resources into a .json file the compiler can understand
193+
* 2. 'src\compiler\diagnosticMessages.generated.json' => 'built\local\ENU\diagnosticMessages.generated.json.lcg'
194+
* generate the lcg file (source of messages to localize) from the diagnosticMessages.generated.json
195+
*/
196+
const localizationTargets = ["cs", "de", "es", "fr", "it", "ja", "ko", "pl", "pt-BR", "ru", "tr", "zh-CN", "zh-TW"].map(function (f) {
197+
return path.join(builtLocalDirectory, f, "diagnosticMessages.generated.json");
198+
}).concat(generatedLCGFile);
199+
183200
for (const i in libraryTargets) {
184201
const entry = librarySourceMap[i];
185202
const target = libraryTargets[i];
@@ -398,7 +415,6 @@ gulp.task(generateLocalizedDiagnosticMessagesJs, /*help*/ false, [], () => {
398415
});
399416

400417
// Localize diagnostics
401-
const generatedLCGFile = path.join(builtLocalDirectory, "enu", "diagnosticMessages.generated.json.lcg");
402418
gulp.task(generatedLCGFile, [generateLocalizedDiagnosticMessagesJs, diagnosticInfoMapTs], (done) => {
403419
if (fs.existsSync(builtLocalDirectory) && needsUpdate(generatedDiagnosticMessagesJSON, generatedLCGFile)) {
404420
exec(host, [generateLocalizedDiagnosticMessagesJs, lclDirectory, builtLocalDirectory, generatedDiagnosticMessagesJSON], done, done);
@@ -576,8 +592,7 @@ gulp.task("dontUseDebugMode", /*help*/ false, [], (done) => { useDebugMode = fal
576592
gulp.task("VerifyLKG", /*help*/ false, [], () => {
577593
const expectedFiles = [builtLocalCompiler, servicesFile, serverFile, nodePackageFile, nodeDefinitionsFile, standaloneDefinitionsFile, tsserverLibraryFile, tsserverLibraryDefinitionFile, typingsInstallerJs, cancellationTokenJs].concat(libraryTargets);
578594
const missingFiles = expectedFiles.
579-
concat(fs.readdirSync(lclDirectory).map(function (d) { return path.join(builtLocalDirectory, d, "diagnosticMessages.generated.json"); })).
580-
concat(generatedLCGFile).
595+
concat(localizationTargets).
581596
filter(f => !fs.existsSync(f));
582597
if (missingFiles.length > 0) {
583598
throw new Error("Cannot replace the LKG unless all built targets are present in directory " + builtLocalDirectory +
@@ -636,15 +651,15 @@ function restoreSavedNodeEnv() {
636651
}
637652

638653
function runConsoleTests(defaultReporter: string, runInParallel: boolean, done: (e?: any) => void) {
639-
const lintFlag = cmdLineOptions["lint"];
654+
const lintFlag = cmdLineOptions.lint;
640655
cleanTestDirs((err) => {
641656
if (err) { console.error(err); failWithStatus(err, 1); }
642-
let testTimeout = cmdLineOptions["timeout"];
643-
const debug = cmdLineOptions["debug"];
644-
const inspect = cmdLineOptions["inspect"];
645-
const tests = cmdLineOptions["tests"];
646-
const light = cmdLineOptions["light"];
647-
const stackTraceLimit = cmdLineOptions["stackTraceLimit"];
657+
let testTimeout = cmdLineOptions.timeout;
658+
const debug = cmdLineOptions.debug;
659+
const inspect = cmdLineOptions.inspect;
660+
const tests = cmdLineOptions.tests;
661+
const light = cmdLineOptions.light;
662+
const stackTraceLimit = cmdLineOptions.stackTraceLimit;
648663
const testConfigFile = "test.config";
649664
if (fs.existsSync(testConfigFile)) {
650665
fs.unlinkSync(testConfigFile);
@@ -660,7 +675,7 @@ function runConsoleTests(defaultReporter: string, runInParallel: boolean, done:
660675
} while (fs.existsSync(taskConfigsFolder));
661676
fs.mkdirSync(taskConfigsFolder);
662677

663-
workerCount = cmdLineOptions["workers"];
678+
workerCount = cmdLineOptions.workers;
664679
}
665680

666681
if (tests || light || taskConfigsFolder) {
@@ -671,8 +686,8 @@ function runConsoleTests(defaultReporter: string, runInParallel: boolean, done:
671686
testTimeout = 400000;
672687
}
673688

674-
const colors = cmdLineOptions["colors"];
675-
const reporter = cmdLineOptions["reporter"] || defaultReporter;
689+
const colors = cmdLineOptions.colors;
690+
const reporter = cmdLineOptions.reporter || defaultReporter;
676691

677692
// timeout normally isn"t necessary but Travis-CI has been timing out on compiler baselines occasionally
678693
// default timeout is 2sec which really should be enough, but maybe we just need a small amount longer
@@ -860,7 +875,7 @@ function cleanTestDirs(done: (e?: any) => void) {
860875

861876
// used to pass data from jake command line directly to run.js
862877
function writeTestConfigFile(tests: string, light: boolean, taskConfigsFolder?: string, workerCount?: number, stackTraceLimit?: string) {
863-
const testConfigContents = JSON.stringify({ test: tests ? [tests] : undefined, light, workerCount, stackTraceLimit, taskConfigsFolder, noColor: !cmdLineOptions["colors"] });
878+
const testConfigContents = JSON.stringify({ test: tests ? [tests] : undefined, light, workerCount, stackTraceLimit, taskConfigsFolder, noColor: !cmdLineOptions.colors });
864879
console.log("Running tests with config: " + testConfigContents);
865880
fs.writeFileSync("test.config", testConfigContents);
866881
}
@@ -870,8 +885,8 @@ gulp.task("runtests-browser", "Runs the tests using the built run.js file like '
870885
cleanTestDirs((err) => {
871886
if (err) { console.error(err); done(err); process.exit(1); }
872887
host = "node";
873-
const tests = cmdLineOptions["tests"];
874-
const light = cmdLineOptions["light"];
888+
const tests = cmdLineOptions.tests;
889+
const light = cmdLineOptions.light;
875890
const testConfigFile = "test.config";
876891
if (fs.existsSync(testConfigFile)) {
877892
fs.unlinkSync(testConfigFile);
@@ -881,8 +896,8 @@ gulp.task("runtests-browser", "Runs the tests using the built run.js file like '
881896
}
882897

883898
const args = [nodeServerOutFile];
884-
if (cmdLineOptions["browser"]) {
885-
args.push(cmdLineOptions["browser"]);
899+
if (cmdLineOptions.browser) {
900+
args.push(cmdLineOptions.browser);
886901
}
887902
if (tests) {
888903
args.push(JSON.stringify(tests));
@@ -892,13 +907,13 @@ gulp.task("runtests-browser", "Runs the tests using the built run.js file like '
892907
});
893908

894909
gulp.task("generate-code-coverage", "Generates code coverage data via istanbul", ["tests"], (done) => {
895-
const testTimeout = cmdLineOptions["timeout"];
910+
const testTimeout = cmdLineOptions.timeout;
896911
exec("istanbul", ["cover", "node_modules/mocha/bin/_mocha", "--", "-R", "min", "-t", testTimeout.toString(), run], done, done);
897912
});
898913

899914

900915
function getDiffTool() {
901-
const program = process.env["DIFF"];
916+
const program = process.env.DIFF;
902917
if (!program) {
903918
console.error("Add the 'DIFF' environment variable to the path of the program you want to use.");
904919
process.exit(1);
@@ -1019,7 +1034,7 @@ gulp.task(instrumenterJsPath, /*help*/ false, [servicesFile], () => {
10191034
});
10201035

10211036
gulp.task("tsc-instrumented", "Builds an instrumented tsc.js - run with --test=[testname]", ["local", loggedIOJsPath, instrumenterJsPath, servicesFile], (done) => {
1022-
const test = cmdLineOptions["tests"] || "iocapture";
1037+
const test = cmdLineOptions.tests || "iocapture";
10231038
exec(host, [instrumenterJsPath, "record", test, builtLocalCompiler], done, done);
10241039
});
10251040

@@ -1088,7 +1103,7 @@ function spawnLintWorker(files: {path: string}[], callback: (failures: number) =
10881103

10891104
gulp.task("lint", "Runs tslint on the compiler sources. Optional arguments are: --f[iles]=regex", ["build-rules"], () => {
10901105
if (fold.isTravis()) console.log(fold.start("lint"));
1091-
const fileMatcher = cmdLineOptions["files"];
1106+
const fileMatcher = cmdLineOptions.files;
10921107
const files = fileMatcher
10931108
? `src/**/${fileMatcher}`
10941109
: "Gulpfile.ts 'scripts/generateLocalizedDiagnosticMessages.ts' 'scripts/tslint/**/*.ts' 'src/**/*.ts' --exclude src/lib/es5.d.ts --exclude 'src/lib/*.generated.d.ts'";

Jakefile.js

+19-3
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,7 @@ var harnessSources = harnessCoreSources.concat([
154154
"symbolWalker.ts",
155155
"languageService.ts",
156156
"publicApi.ts",
157+
"hostNewLineSupport.ts",
157158
].map(function (f) {
158159
return path.join(unittestsDirectory, f);
159160
})).concat([
@@ -238,6 +239,23 @@ var libraryTargets = librarySourceMap.map(function (f) {
238239
return path.join(builtLocalDirectory, f.target);
239240
});
240241

242+
/**
243+
* .lcg file is what localization team uses to know what messages to localize.
244+
* The file is always generated in 'enu\diagnosticMessages.generated.json.lcg'
245+
*/
246+
var generatedLCGFile = path.join(builtLocalDirectory, "enu", "diagnosticMessages.generated.json.lcg");
247+
248+
/**
249+
* The localization target produces the two following transformations:
250+
* 1. 'src\loc\lcl\<locale>\diagnosticMessages.generated.json.lcl' => 'built\local\<locale>\diagnosticMessages.generated.json'
251+
* convert localized resources into a .json file the compiler can understand
252+
* 2. 'src\compiler\diagnosticMessages.generated.json' => 'built\local\ENU\diagnosticMessages.generated.json.lcg'
253+
* generate the lcg file (source of messages to localize) from the diagnosticMessages.generated.json
254+
*/
255+
var localizationTargets = ["cs", "de", "es", "fr", "it", "ja", "ko", "pl", "pt-BR", "ru", "tr", "zh-CN", "zh-TW"].map(function (f) {
256+
return path.join(builtLocalDirectory, f);
257+
}).concat(path.dirname(generatedLCGFile));
258+
241259
// Prepends the contents of prefixFile to destinationFile
242260
function prependFile(prefixFile, destinationFile) {
243261
if (!fs.existsSync(prefixFile)) {
@@ -443,7 +461,6 @@ compileFile(generateLocalizedDiagnosticMessagesJs,
443461
/*useBuiltCompiler*/ false, { noOutFile: true, types: ["node", "xml2js"] });
444462

445463
// Localize diagnostics
446-
var generatedLCGFile = path.join(builtLocalDirectory, "enu", "diagnosticMessages.generated.json.lcg");
447464
file(generatedLCGFile, [generateLocalizedDiagnosticMessagesJs, diagnosticInfoMapTs, generatedDiagnosticMessagesJSON], function () {
448465
var cmd = host + " " + generateLocalizedDiagnosticMessagesJs + " " + lclDirectory + " " + builtLocalDirectory + " " + generatedDiagnosticMessagesJSON;
449466
console.log(cmd);
@@ -735,8 +752,7 @@ desc("Makes a new LKG out of the built js files");
735752
task("LKG", ["clean", "release", "local"].concat(libraryTargets), function () {
736753
var expectedFiles = [tscFile, servicesFile, serverFile, nodePackageFile, nodeDefinitionsFile, standaloneDefinitionsFile, tsserverLibraryFile, tsserverLibraryDefinitionFile, cancellationTokenFile, typingsInstallerFile, buildProtocolDts, watchGuardFile].
737754
concat(libraryTargets).
738-
concat(fs.readdirSync(lclDirectory).map(function (d) { return path.join(builtLocalDirectory, d) })).
739-
concat(path.dirname(generatedLCGFile));
755+
concat(localizationTargets);
740756
var missingFiles = expectedFiles.filter(function (f) {
741757
return !fs.existsSync(f);
742758
});

lib/csy/diagnosticMessages.generated.json lib/cs/diagnosticMessages.generated.json

+11-2
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@
8383
"A_yield_expression_is_only_allowed_in_a_generator_body_1163": "Výraz yield je povolený jenom v těle generátoru.",
8484
"Abstract_method_0_in_class_1_cannot_be_accessed_via_super_expression_2513": "K abstraktní metodě {0} ve třídě {1} nejde získat přístup prostřednictvím výrazu super.",
8585
"Abstract_methods_can_only_appear_within_an_abstract_class_1244": "Abstraktní metody se můžou vyskytovat jenom v abstraktní třídě.",
86+
"Abstract_property_0_in_class_1_cannot_be_accessed_in_the_constructor_2715": "K abstraktní vlastnosti {0} ve třídě {1} nelze získat přístup v konstruktoru.",
8687
"Accessibility_modifier_already_seen_1028": "Modifikátor dostupnosti se už jednou vyskytl.",
8788
"Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher_1056": "Přístupové objekty jsou dostupné, jenom když je cílem ECMAScript 5 a vyšší verze.",
8889
"Accessors_must_both_be_abstract_or_non_abstract_2676": "Přistupující objekty musí být abstraktní nebo neabstraktní.",
@@ -142,6 +143,8 @@
142143
"An_object_member_cannot_be_declared_optional_1162": "Člen objektu nemůže být deklarovaný jako nepovinný.",
143144
"An_overload_signature_cannot_be_declared_as_a_generator_1222": "Signatura přetížení nemůže být deklarovaný jako generátor.",
144145
"An_unary_expression_with_the_0_operator_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_ex_17006": "Unární výraz s operátorem {0} se na levé straně výrazu umocnění nepovoluje. Zvažte možnost uzavření výrazu do závorek.",
146+
"Annotate_with_type_from_JSDoc_95009": "Přidat poznámku s typem z JSDoc",
147+
"Annotate_with_types_from_JSDoc_95010": "Přidat poznámky s typy z JSDoc",
145148
"Argument_expression_expected_1135": "Očekává se výraz argumentu.",
146149
"Argument_for_0_option_must_be_Colon_1_6046": "Argument možnosti {0} musí být {1}.",
147150
"Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_2345": "Argument typu {0} nejde přiřadit k parametru typu {1}.",
@@ -158,6 +161,7 @@
158161
"Binary_digit_expected_1177": "Očekává se binární číslice.",
159162
"Binding_element_0_implicitly_has_an_1_type_7031": "Element vazby {0} má implicitně typ {1}.",
160163
"Block_scoped_variable_0_used_before_its_declaration_2448": "Proměnná bloku {0} se používá před vlastní deklarací.",
164+
"Call_decorator_expression_90028": "Výraz pro volání dekoratéru",
161165
"Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type_7020": "Signatura volání s chybějící anotací návratového typu má implicitně návratový typ any.",
162166
"Call_target_does_not_contain_any_signatures_2346": "Cíl volání neobsahuje žádné signatury.",
163167
"Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_p_2713": "K {0}.{1} nelze získat přístup, protože {0} je typ, nikoli názvový prostor. Chtěli jste načíst typ vlastnosti {1} v {0} pomocí {0}[{1}]?",
@@ -215,6 +219,7 @@
215219
"Class_0_incorrectly_extends_base_class_1_2415": "Třída {0} nesprávně rozšiřuje základní třídu {1}.",
216220
"Class_0_incorrectly_implements_interface_1_2420": "Třída {0} nesprávně implementuje rozhraní {1}.",
217221
"Class_0_used_before_its_declaration_2449": "Třída {0} se používá dříve, než se deklaruje.",
222+
"Class_declarations_cannot_have_more_than_one_augments_or_extends_tag_8025": "Deklarace tříd nemůžou obsahovat více než jednu značku @augments nebo @extends.",
218223
"Class_name_cannot_be_0_2414": "Třída nemůže mít název {0}.",
219224
"Class_static_side_0_incorrectly_extends_base_class_static_side_1_2417": "Statická strana třídy {0} nesprávně rozšiřuje statickou stranu základní třídy {1}.",
220225
"Classes_can_only_extend_a_single_class_1174": "Třídy můžou rozšířit jenom jednu třídu.",
@@ -409,6 +414,8 @@
409414
"Index_signature_is_missing_in_type_0_2329": "V typu {0} chybí signatura indexu.",
410415
"Index_signatures_are_incompatible_2330": "Signatury indexu jsou nekompatibilní.",
411416
"Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local_2395": "Jednotlivé deklarace ve sloučené deklaraci {0} musí být všechny exportované nebo všechny místní.",
417+
"Infer_parameter_types_from_usage_95012": "Odvodit typy parametrů z používání",
418+
"Infer_type_of_0_from_usage_95011": "Odvodit typ {0} z používání",
412419
"Initialize_property_0_in_the_constructor_90020": "Inicializovat vlastnost {0} v konstruktoru",
413420
"Initialize_static_property_0_90021": "Inicializovat statickou vlastnost {0}",
414421
"Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor_2301": "Inicializátor instance členské proměnné {0} nemůže odkazovat na identifikátor {1} deklarovaný v konstruktoru.",
@@ -430,8 +437,8 @@
430437
"Invalid_use_of_0_in_strict_mode_1100": "Neplatné použití {0} ve striktním režimu",
431438
"Invalid_value_for_jsxFactory_0_is_not_a_valid_identifier_or_qualified_name_5067": "Neplatná hodnota pro jsxFactory. {0} není platný identifikátor nebo kvalifikovaný název.",
432439
"Invalid_value_for_reactNamespace_0_is_not_a_valid_identifier_5059": "Neplatná hodnota --reactNamespace. {0} není platný identifikátor.",
433-
"JSDoc_augments_0_does_not_match_the_extends_1_clause_8023": "Značka JSDoc @augments {0} neodpovídá klauzuli extends {1}.",
434-
"JSDoc_augments_is_not_attached_to_a_class_declaration_8022": "Značka JSDoc @augments není připojená k deklaraci třídy.",
440+
"JSDoc_0_1_does_not_match_the_extends_2_clause_8023": "Značka JSDoc @{0} {1} neodpovídá klauzuli extends {2}.",
441+
"JSDoc_0_is_not_attached_to_a_class_8022": "Značka JSDoc @{0} není připojená k třídě.",
435442
"JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_8024": "Značka JSDoc @param má název {0}, ale žádný parametr s tímto názvem neexistuje.",
436443
"JSDoc_typedef_tag_should_either_have_a_type_annotation_or_be_followed_by_property_or_member_tags_8021": "Značka JSDoc @typedef by měla mít anotaci typu nebo by za ní měla následovat značka @property nebo @member.",
437444
"JSDoc_types_can_only_be_used_inside_documentation_comments_8020": "Typy JSDoc se můžou používat jenom v dokumentačních komentářích.",
@@ -785,6 +792,7 @@
785792
"Type_of_iterated_elements_of_a_yield_Asterisk_operand_must_either_be_a_valid_promise_or_must_not_con_1322": "Typ iterovaných elementů yield* musí být buď platný příslib, nebo nesmí obsahovat člen then, který se dá volat.",
786793
"Type_of_yield_operand_in_an_async_generator_must_either_be_a_valid_promise_or_must_not_contain_a_cal_1321": "Typ operandu yield v asynchronním generátoru musí být buď platný příslib, nebo nesmí obsahovat člen then, který se dá volat.",
787794
"Type_parameter_0_has_a_circular_constraint_2313": "Parametr typu {0} má cyklické omezení.",
795+
"Type_parameter_0_has_a_circular_default_2716": "Parametr typu {0} má cyklickou výchozí hodnotu.",
788796
"Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1_4008": "Parametr typu {0} signatury volání z exportovaného rozhraní má nebo používá privátní název {1}.",
789797
"Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1_4006": "Parametr typu {0} signatury konstruktoru z exportovaného rozhraní má nebo používá privátní název {1}.",
790798
"Type_parameter_0_of_exported_class_has_or_is_using_private_name_1_4002": "Parametr typu {0} exportované třídy má nebo používá privátní název {1}.",
@@ -838,6 +846,7 @@
838846
"Watch_input_files_6005": "Sledovat vstupní soubory",
839847
"You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library_8001": "Nejde přejmenovat elementy definované ve standardní knihovně TypeScriptu.",
840848
"You_cannot_rename_this_element_8000": "Tento element nejde přejmenovat.",
849+
"_0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write__1329": "Objekt {0} přijímá málo argumentů k tomu, aby se dal použít jako dekoratér. Nechtěli jste ho nejprve volat a napsat @{0}()?",
841850
"_0_are_specified_twice_The_attribute_named_0_will_be_overwritten_2710": "Položka {0} je zadána dvakrát. Atribut s názvem {0} se přepíše.",
842851
"_0_can_only_be_used_in_a_ts_file_8009": "{0} se dá použít jenom v souboru .ts.",
843852
"_0_expected_1005": "Očekával se: {0}.",

0 commit comments

Comments
 (0)