mirror of
https://github.com/microsoft/TypeScript.git
synced 2025-11-18 17:21:48 +00:00
Merge branch 'master' into getRootSymbols
This commit is contained in:
@@ -2,24 +2,19 @@
|
||||
path = tests/cases/user/TypeScript-React-Starter/TypeScript-React-Starter
|
||||
url = https://github.com/Microsoft/TypeScript-React-Starter
|
||||
ignore = all
|
||||
shallow = true
|
||||
[submodule "tests/cases/user/TypeScript-Node-Starter/TypeScript-Node-Starter"]
|
||||
path = tests/cases/user/TypeScript-Node-Starter/TypeScript-Node-Starter
|
||||
url = https://github.com/Microsoft/TypeScript-Node-Starter.git
|
||||
ignore = all
|
||||
shallow = true
|
||||
[submodule "tests/cases/user/TypeScript-React-Native-Starter/TypeScript-React-Native-Starter"]
|
||||
path = tests/cases/user/TypeScript-React-Native-Starter/TypeScript-React-Native-Starter
|
||||
url = https://github.com/Microsoft/TypeScript-React-Native-Starter.git
|
||||
ignore = all
|
||||
shallow = true
|
||||
[submodule "tests/cases/user/TypeScript-Vue-Starter/TypeScript-Vue-Starter"]
|
||||
path = tests/cases/user/TypeScript-Vue-Starter/TypeScript-Vue-Starter
|
||||
url = https://github.com/Microsoft/TypeScript-Vue-Starter.git
|
||||
ignore = all
|
||||
shallow = true
|
||||
[submodule "tests/cases/user/TypeScript-WeChat-Starter/TypeScript-WeChat-Starter"]
|
||||
path = tests/cases/user/TypeScript-WeChat-Starter/TypeScript-WeChat-Starter
|
||||
url = https://github.com/Microsoft/TypeScript-WeChat-Starter.git
|
||||
ignore = all
|
||||
shallow = true
|
||||
|
||||
+2
-1
@@ -130,6 +130,7 @@ var harnessSources = harnessCoreSources.concat([
|
||||
"textStorage.ts",
|
||||
"moduleResolution.ts",
|
||||
"tsconfigParsing.ts",
|
||||
"asserts.ts",
|
||||
"builder.ts",
|
||||
"commandLineParsing.ts",
|
||||
"configurationExtension.ts",
|
||||
@@ -795,7 +796,7 @@ compileFile(
|
||||
/*prereqs*/[builtLocalDirectory, tscFile, tsserverLibraryFile].concat(libraryTargets).concat(servicesSources).concat(harnessSources),
|
||||
/*prefixes*/[],
|
||||
/*useBuiltCompiler:*/ true,
|
||||
/*opts*/ { types: ["node", "mocha"], lib: "es6" });
|
||||
/*opts*/ { types: ["node", "mocha", "chai"], lib: "es6" });
|
||||
|
||||
var internalTests = "internal/";
|
||||
|
||||
|
||||
Generated
+135
-80
@@ -35,6 +35,12 @@
|
||||
"through2": "2.0.3"
|
||||
}
|
||||
},
|
||||
"@types/arrify": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/arrify/-/arrify-1.0.2.tgz",
|
||||
"integrity": "sha512-gB1Oqypj/WbMjnWyCcvQdynRyfusKtqzUpt+EN/OtgFcjikC7ZV4qzS3SLbO1Ai2B0iVSgWvwR9A49lZGfivYg==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/browserify": {
|
||||
"version": "12.0.33",
|
||||
"resolved": "https://registry.npmjs.org/@types/browserify/-/browserify-12.0.33.tgz",
|
||||
@@ -42,13 +48,13 @@
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/insert-module-globals": "7.0.0",
|
||||
"@types/node": "8.0.54"
|
||||
"@types/node": "8.0.58"
|
||||
}
|
||||
},
|
||||
"@types/chai": {
|
||||
"version": "4.0.7",
|
||||
"resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.0.7.tgz",
|
||||
"integrity": "sha512-OsFOcyJH0SViMMHzDKZdapG8sfoH7qcpYgKhgyw9xn5MgkCvAplkf0FUaRFB+HTrVH6gQ/GU7sbIUDM1usVEUA==",
|
||||
"version": "4.0.10",
|
||||
"resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.0.10.tgz",
|
||||
"integrity": "sha512-Ejh1AXTY8lm+x91X/yar3G2z4x9RyKwdTVdyyu7Xj3dNB35fMNCnEWqTO9FgS3zjzlRNqk1MruYhgb8yhRN9rA==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/colors": {
|
||||
@@ -69,9 +75,15 @@
|
||||
"integrity": "sha512-18mSs54BvzV8+TTQxt0ancig6tsuPZySnhp3cQkWFFDmDMavU4pmWwR+bHHqRBWODYqpzIzVkqKLuk/fP6yypQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/glob": "5.0.33"
|
||||
"@types/glob": "5.0.34"
|
||||
}
|
||||
},
|
||||
"@types/diff": {
|
||||
"version": "3.2.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/diff/-/diff-3.2.2.tgz",
|
||||
"integrity": "sha512-q3zfJvaTroV5BjAAR+peTHEGAAhGrPX0z2EzCzpt2mwFA+qzUn2nigJLqSekXRtdULKmT8am7zjvTMZSapIgHw==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/events": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/events/-/events-1.1.0.tgz",
|
||||
@@ -79,13 +91,14 @@
|
||||
"dev": true
|
||||
},
|
||||
"@types/glob": {
|
||||
"version": "5.0.33",
|
||||
"resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.33.tgz",
|
||||
"integrity": "sha512-BcD4yyWz+qmCggaYMSFF0Xn7GkO6tgwm3Fh9Gxk/kQmEU3Z7flQTnVlMyKBUNvXXNTCCyjqK4XT4/2hLd1gQ2A==",
|
||||
"version": "5.0.34",
|
||||
"resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.34.tgz",
|
||||
"integrity": "sha512-sUvpieq+HsWTLdkeOI8Mi8u22Ag3AoGuM3sv+XMP1bKtbaIAHpEA2f52K2mz6vK5PVhTa3bFyRZLZMqTxOo2Cw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/events": "1.1.0",
|
||||
"@types/minimatch": "3.0.1",
|
||||
"@types/node": "8.0.54"
|
||||
"@types/node": "8.0.58"
|
||||
}
|
||||
},
|
||||
"@types/gulp": {
|
||||
@@ -94,7 +107,7 @@
|
||||
"integrity": "sha512-h9clNJu8X6+zW74ZLa5zhh5HP0LxnvlelVXdXby6pM/DDEj/gKqmmFXKwjzvupZKlMpof02jr6c3JokPbHXQgg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/node": "8.0.54",
|
||||
"@types/node": "8.0.58",
|
||||
"@types/orchestrator": "0.3.2",
|
||||
"@types/vinyl": "2.0.1"
|
||||
}
|
||||
@@ -105,7 +118,7 @@
|
||||
"integrity": "sha512-CUCFADlITzzBfBa2bdGzhKtvBr4eFh+evb+4igVbvPoO5RyPfHifmyQlZl6lM7q19+OKncRlFXDU7B4X9Ayo2g==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/node": "8.0.54"
|
||||
"@types/node": "8.0.58"
|
||||
}
|
||||
},
|
||||
"@types/gulp-help": {
|
||||
@@ -115,7 +128,7 @@
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/gulp": "3.8.35",
|
||||
"@types/node": "8.0.54",
|
||||
"@types/node": "8.0.58",
|
||||
"@types/orchestrator": "0.3.2"
|
||||
}
|
||||
},
|
||||
@@ -125,7 +138,7 @@
|
||||
"integrity": "sha512-e7J/Zv5Wd7CC0WpuA2syWVitgwrkG0u221e41w7r07XUR6hMH6kHPkq9tUrusHkbeW8QbuLbis5fODOwQCyggQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/node": "8.0.54"
|
||||
"@types/node": "8.0.58"
|
||||
}
|
||||
},
|
||||
"@types/gulp-sourcemaps": {
|
||||
@@ -134,7 +147,7 @@
|
||||
"integrity": "sha512-+7BAmptW2bxyJnJcCEuie7vLoop3FwWgCdBMzyv7MYXED/HeNMeQuX7uPCkp4vfU1TTu4CYFH0IckNPvo0VePA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/node": "8.0.54"
|
||||
"@types/node": "8.0.58"
|
||||
}
|
||||
},
|
||||
"@types/insert-module-globals": {
|
||||
@@ -143,7 +156,7 @@
|
||||
"integrity": "sha512-zudCJPwluh1VUDB6Gl/OQdRp+fYy3+47huJB/JMQubMS2p+sH18MCVK4WUz3FqaWLB12yh5ELxVR/+tqwlm/qA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/node": "8.0.54"
|
||||
"@types/node": "8.0.58"
|
||||
}
|
||||
},
|
||||
"@types/merge2": {
|
||||
@@ -152,7 +165,7 @@
|
||||
"integrity": "sha512-GjaXY4OultxbaOOk7lCLO7xvEcFpdjExC605YmfI6X29vhHKpJfMWKCDZd3x+BITrZaXKg97DgV/SdGVSwdzxA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/node": "8.0.54"
|
||||
"@types/node": "8.0.58"
|
||||
}
|
||||
},
|
||||
"@types/minimatch": {
|
||||
@@ -173,7 +186,7 @@
|
||||
"integrity": "sha512-U5icWpv7YnZYGsN4/cmh3WD2onMY0aJIiTE6+51TwJCttdHvtCYmkBNOobHlXwrJRL0nkH9jH4kD+1FAdMN4Tg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/node": "8.0.54"
|
||||
"@types/node": "8.0.58"
|
||||
}
|
||||
},
|
||||
"@types/mocha": {
|
||||
@@ -183,13 +196,10 @@
|
||||
"dev": true
|
||||
},
|
||||
"@types/node": {
|
||||
"version": "8.0.54",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-8.0.54.tgz",
|
||||
"integrity": "sha512-qetMdTv3Ytz9u9ESLdcYs45LPI0mczYZIbC184n7kY0jczOqPNQsabBfVCh+na3B2shAfvC459JqHV771A8Rxg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/events": "1.1.0"
|
||||
}
|
||||
"version": "8.0.58",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-8.0.58.tgz",
|
||||
"integrity": "sha512-V746iUU7eHNdzQipoACuguDlVhC7IHK8CES1jSkuFt352wwA84BCWPXaGekBd7R5XdNK5ReHONDVKxlL9IreAw==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/orchestrator": {
|
||||
"version": "0.3.2",
|
||||
@@ -197,7 +207,7 @@
|
||||
"integrity": "sha512-cKB4yTX0wGaRCSkdHDX2fkGQbMAA8UOshC2U7DQky1CE5o+5q2iQQ8VkbPbE/88uaTtsusvBPMcCX7dgmjxBhQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/node": "8.0.54",
|
||||
"@types/node": "8.0.58",
|
||||
"@types/q": "1.0.6"
|
||||
}
|
||||
},
|
||||
@@ -214,25 +224,50 @@
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/gulp": "3.8.35",
|
||||
"@types/node": "8.0.54"
|
||||
"@types/node": "8.0.58"
|
||||
}
|
||||
},
|
||||
"@types/source-map-support": {
|
||||
"version": "0.4.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/source-map-support/-/source-map-support-0.4.0.tgz",
|
||||
"integrity": "sha512-9oVAi1Jlr274pbMGPEe0S3IPImV9knVNafa6E4MookD/fjOZAE6EmLkFX5ZjtZ9OXNPi2FCIZzUSMvwAUUKeSg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/node": "8.0.58"
|
||||
}
|
||||
},
|
||||
"@types/strip-bom": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/strip-bom/-/strip-bom-3.0.0.tgz",
|
||||
"integrity": "sha1-FKjsOVbC6B7bdSB5CuzyHCkK69I=",
|
||||
"dev": true
|
||||
},
|
||||
"@types/strip-json-comments": {
|
||||
"version": "0.0.30",
|
||||
"resolved": "https://registry.npmjs.org/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz",
|
||||
"integrity": "sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/through2": {
|
||||
"version": "2.0.33",
|
||||
"resolved": "https://registry.npmjs.org/@types/through2/-/through2-2.0.33.tgz",
|
||||
"integrity": "sha1-H/LoihAN+1sUDnu5h5HxGUQA0TE=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/node": "8.0.54"
|
||||
"@types/node": "8.0.58"
|
||||
}
|
||||
},
|
||||
"@types/v8flags": {
|
||||
"version": "github:types/npm-v8flags#de224ae1cd5fd7dbb4e7158a6cc7a29e5315930d",
|
||||
"dev": true
|
||||
},
|
||||
"@types/vinyl": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/vinyl/-/vinyl-2.0.1.tgz",
|
||||
"integrity": "sha512-Joudabfn2ZofU2usW04y8OLmN75u7ZQkW0MCT3AnoBf5oUBp5iQ3Pgfz9+y1RdWkzhCPZo9/wBJ7FMWW2JrY0g==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/node": "8.0.54"
|
||||
"@types/node": "8.0.58"
|
||||
}
|
||||
},
|
||||
"@types/xml2js": {
|
||||
@@ -241,18 +276,12 @@
|
||||
"integrity": "sha512-8aKUBSj3oGcnuiBmDLm3BIk09RYg01mz9HlQ2u4aS17oJ25DxjQrEUVGFSBVNOfM45pQW4OjcBPplq6r/exJdA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/node": "8.0.54"
|
||||
"@types/node": "8.0.58"
|
||||
}
|
||||
},
|
||||
"JSONStream": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.1.tgz",
|
||||
"integrity": "sha1-cH92HgHa6eFvG8+TcDt4xwlmV5o=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"jsonparse": "1.3.1",
|
||||
"through": "2.3.8"
|
||||
}
|
||||
"@types/yn": {
|
||||
"version": "github:types/npm-yn#ca75f6c82940fae6a06fb41d2d37a6aa9b4ea8e9",
|
||||
"dev": true
|
||||
},
|
||||
"abbrev": {
|
||||
"version": "1.0.9",
|
||||
@@ -283,6 +312,15 @@
|
||||
"integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
|
||||
"dev": true
|
||||
},
|
||||
"ansi-gray": {
|
||||
"version": "0.1.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz",
|
||||
"integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-wrap": "0.1.0"
|
||||
}
|
||||
},
|
||||
"ansi-regex": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
|
||||
@@ -295,6 +333,12 @@
|
||||
"integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
|
||||
"dev": true
|
||||
},
|
||||
"ansi-wrap": {
|
||||
"version": "0.1.0",
|
||||
"resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz",
|
||||
"integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=",
|
||||
"dev": true
|
||||
},
|
||||
"archy": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz",
|
||||
@@ -509,9 +553,9 @@
|
||||
"integrity": "sha1-+GzWzvT1MAyOY+B6TVEvZfv/RTE=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"JSONStream": "1.3.1",
|
||||
"combine-source-map": "0.7.2",
|
||||
"defined": "1.0.0",
|
||||
"JSONStream": "1.3.1",
|
||||
"through2": "2.0.3",
|
||||
"umd": "3.0.1"
|
||||
}
|
||||
@@ -537,7 +581,6 @@
|
||||
"integrity": "sha512-gKfOsNQv/toWz+60nSPfYzuwSEdzvV2WdxrVPUbPD/qui44rAkB3t3muNtmmGYHqrG56FGwX9SUEQmzNLAeS7g==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"JSONStream": "1.3.1",
|
||||
"assert": "1.4.1",
|
||||
"browser-pack": "6.0.2",
|
||||
"browser-resolve": "1.11.2",
|
||||
@@ -559,6 +602,7 @@
|
||||
"https-browserify": "1.0.0",
|
||||
"inherits": "2.0.3",
|
||||
"insert-module-globals": "7.0.1",
|
||||
"JSONStream": "1.3.1",
|
||||
"labeled-stream-splicer": "2.0.0",
|
||||
"module-deps": "4.1.1",
|
||||
"os-browserify": "0.3.0",
|
||||
@@ -1056,9 +1100,9 @@
|
||||
}
|
||||
},
|
||||
"debug-fabulous": {
|
||||
"version": "0.2.1",
|
||||
"resolved": "https://registry.npmjs.org/debug-fabulous/-/debug-fabulous-0.2.1.tgz",
|
||||
"integrity": "sha512-u0TV6HcfLsZ03xLBhdhSViQMldaiQ2o+8/nSILaXkuNSWvxkx66vYJUAam0Eu7gAilJRX/69J4kKdqajQPaPyw==",
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/debug-fabulous/-/debug-fabulous-1.0.0.tgz",
|
||||
"integrity": "sha512-dsd50qQ1atDeurcxL7XOjPp4nZCGZzWIONDujDXzl1atSyC3hMbZD+v6440etw+Vt0Pr8ce4TQzHfX3KZM05Mw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"debug": "3.1.0",
|
||||
@@ -1452,12 +1496,12 @@
|
||||
}
|
||||
},
|
||||
"fancy-log": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.0.tgz",
|
||||
"integrity": "sha1-Rb4X0Cu5kX1gzP/UmVyZnmyMmUg=",
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.1.tgz",
|
||||
"integrity": "sha1-xKNGK6FK3137q3lzH9OESiBpy7s=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"chalk": "1.1.3",
|
||||
"ansi-gray": "0.1.1",
|
||||
"time-stamp": "1.1.0"
|
||||
}
|
||||
},
|
||||
@@ -1848,7 +1892,7 @@
|
||||
"integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"natives": "1.1.0"
|
||||
"natives": "1.1.1"
|
||||
}
|
||||
},
|
||||
"growl": {
|
||||
@@ -2183,7 +2227,7 @@
|
||||
"acorn": "4.0.13",
|
||||
"convert-source-map": "1.5.1",
|
||||
"css": "2.2.1",
|
||||
"debug-fabulous": "0.2.1",
|
||||
"debug-fabulous": "1.0.0",
|
||||
"detect-newline": "2.1.0",
|
||||
"graceful-fs": "4.1.11",
|
||||
"source-map": "0.5.7",
|
||||
@@ -2419,7 +2463,7 @@
|
||||
"beeper": "1.1.1",
|
||||
"chalk": "1.1.3",
|
||||
"dateformat": "2.2.0",
|
||||
"fancy-log": "1.3.0",
|
||||
"fancy-log": "1.3.1",
|
||||
"gulplog": "1.0.0",
|
||||
"has-gulplog": "0.1.0",
|
||||
"lodash._reescape": "3.0.0",
|
||||
@@ -2645,10 +2689,10 @@
|
||||
"integrity": "sha1-wDv04BywhtW15azorQr+eInWOMM=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"JSONStream": "1.3.1",
|
||||
"combine-source-map": "0.7.2",
|
||||
"concat-stream": "1.5.2",
|
||||
"is-buffer": "1.1.6",
|
||||
"JSONStream": "1.3.1",
|
||||
"lexical-scope": "1.2.0",
|
||||
"process": "0.11.10",
|
||||
"through2": "2.0.3",
|
||||
@@ -3003,6 +3047,16 @@
|
||||
"integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=",
|
||||
"dev": true
|
||||
},
|
||||
"JSONStream": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.1.tgz",
|
||||
"integrity": "sha1-cH92HgHa6eFvG8+TcDt4xwlmV5o=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"jsonparse": "1.3.1",
|
||||
"through": "2.3.8"
|
||||
}
|
||||
},
|
||||
"kew": {
|
||||
"version": "0.7.0",
|
||||
"resolved": "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz",
|
||||
@@ -3641,7 +3695,6 @@
|
||||
"integrity": "sha1-IyFYM/HaE/1gbMuAh7RIUty4If0=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"JSONStream": "1.3.1",
|
||||
"browser-resolve": "1.11.2",
|
||||
"cached-path-relative": "1.0.1",
|
||||
"concat-stream": "1.5.2",
|
||||
@@ -3649,6 +3702,7 @@
|
||||
"detective": "4.7.0",
|
||||
"duplexer2": "0.1.4",
|
||||
"inherits": "2.0.3",
|
||||
"JSONStream": "1.3.1",
|
||||
"parents": "1.0.1",
|
||||
"readable-stream": "2.3.3",
|
||||
"resolve": "1.1.7",
|
||||
@@ -3709,9 +3763,9 @@
|
||||
}
|
||||
},
|
||||
"natives": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/natives/-/natives-1.1.0.tgz",
|
||||
"integrity": "sha1-6f+EFBimsux6SV6TmYT3jxY+bjE=",
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/natives/-/natives-1.1.1.tgz",
|
||||
"integrity": "sha512-8eRaxn8u/4wN8tGkhlc2cgwwvOLMLUMUn4IYTexMgWd+LyUDfeXVkk2ygQR0hvIHbJQXgHujia3ieUUDwNGkEA==",
|
||||
"dev": true
|
||||
},
|
||||
"next-tick": {
|
||||
@@ -4846,19 +4900,27 @@
|
||||
"dev": true
|
||||
},
|
||||
"ts-node": {
|
||||
"version": "3.3.0",
|
||||
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-3.3.0.tgz",
|
||||
"integrity": "sha1-wTxqMCTjC+EYDdUwOPwgkonUv2k=",
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-4.0.1.tgz",
|
||||
"integrity": "sha512-F9AHAfL7QO+W8QPnEY4dzjCV2RPDK76mzYkQVB/7BuGOJWFxJgGezdyvCdtfVtE1QOOen3DnJONsenzIqIKqYQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/arrify": "1.0.2",
|
||||
"@types/diff": "3.2.2",
|
||||
"@types/minimist": "1.2.0",
|
||||
"@types/mkdirp": "0.5.2",
|
||||
"@types/node": "8.0.58",
|
||||
"@types/source-map-support": "0.4.0",
|
||||
"@types/v8flags": "github:types/npm-v8flags#de224ae1cd5fd7dbb4e7158a6cc7a29e5315930d",
|
||||
"@types/yn": "github:types/npm-yn#ca75f6c82940fae6a06fb41d2d37a6aa9b4ea8e9",
|
||||
"arrify": "1.0.1",
|
||||
"chalk": "2.3.0",
|
||||
"diff": "3.3.1",
|
||||
"make-error": "1.3.0",
|
||||
"minimist": "1.2.0",
|
||||
"mkdirp": "0.5.1",
|
||||
"source-map-support": "0.4.18",
|
||||
"tsconfig": "6.0.0",
|
||||
"source-map-support": "0.5.0",
|
||||
"tsconfig": "7.0.0",
|
||||
"v8flags": "3.0.1",
|
||||
"yn": "2.0.0"
|
||||
},
|
||||
@@ -4889,15 +4951,6 @@
|
||||
"integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
|
||||
"dev": true
|
||||
},
|
||||
"source-map-support": {
|
||||
"version": "0.4.18",
|
||||
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz",
|
||||
"integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"source-map": "0.5.7"
|
||||
}
|
||||
},
|
||||
"supports-color": {
|
||||
"version": "4.5.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
|
||||
@@ -4919,11 +4972,13 @@
|
||||
}
|
||||
},
|
||||
"tsconfig": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-6.0.0.tgz",
|
||||
"integrity": "sha1-aw6DdgA9evGGT434+J3QBZ/80DI=",
|
||||
"version": "7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-7.0.0.tgz",
|
||||
"integrity": "sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/strip-bom": "3.0.0",
|
||||
"@types/strip-json-comments": "0.0.30",
|
||||
"strip-bom": "3.0.0",
|
||||
"strip-json-comments": "2.0.1"
|
||||
},
|
||||
@@ -4937,9 +4992,9 @@
|
||||
}
|
||||
},
|
||||
"tslib": {
|
||||
"version": "1.8.0",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.8.0.tgz",
|
||||
"integrity": "sha512-ymKWWZJST0/CkgduC2qkzjMOWr4bouhuURNXCn/inEX0L57BnRG6FhX76o7FOnsjHazCjfU2LKeSrlS2sIKQJg==",
|
||||
"version": "1.8.1",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.8.1.tgz",
|
||||
"integrity": "sha1-aUavLR1lGnsYY7Ux1uWvpBqkTqw=",
|
||||
"dev": true
|
||||
},
|
||||
"tslint": {
|
||||
@@ -4957,7 +5012,7 @@
|
||||
"minimatch": "3.0.4",
|
||||
"resolve": "1.5.0",
|
||||
"semver": "5.4.1",
|
||||
"tslib": "1.8.0",
|
||||
"tslib": "1.8.1",
|
||||
"tsutils": "2.13.0"
|
||||
},
|
||||
"dependencies": {
|
||||
@@ -5019,7 +5074,7 @@
|
||||
"integrity": "sha512-FuWzNJbMsp3gcZMbI3b5DomhW4Ia41vMxjN63nKWI0t7f+I3UmHfRl0TrXJTwI2LUduDG+eR1Mksp3pvtlyCFQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"tslib": "1.8.0"
|
||||
"tslib": "1.8.1"
|
||||
}
|
||||
},
|
||||
"tty-browserify": {
|
||||
@@ -5050,9 +5105,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"typescript": {
|
||||
"version": "2.7.0-dev.20171203",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-2.7.0-dev.20171203.tgz",
|
||||
"integrity": "sha512-FyhV7OvieIXzjktOb9YmixEIR8olL8IrnonCmJQWGnj8Wt6eoQQKQlkXWPy8mpwEaSIXw/nQO0NpGQ+nWokhRw==",
|
||||
"version": "2.7.0-dev.20171212",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-2.7.0-dev.20171212.tgz",
|
||||
"integrity": "sha512-D9eP7T4QjfsoFNi35iOYTgLgwQE+OrVkWFQ2p+MbgKd0W2Qupqe6COyyQPoUeXvOrB5rbaIkeomh+VFMOPjtKg==",
|
||||
"dev": true
|
||||
},
|
||||
"uglify-js": {
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/browserify": "latest",
|
||||
"@types/chai": "latest",
|
||||
"@types/colors": "latest",
|
||||
"@types/convert-source-map": "latest",
|
||||
"@types/del": "latest",
|
||||
@@ -52,6 +53,7 @@
|
||||
"xml2js": "^0.4.19",
|
||||
"browser-resolve": "^1.11.2",
|
||||
"browserify": "latest",
|
||||
"chai": "latest",
|
||||
"convert-source-map": "latest",
|
||||
"del": "latest",
|
||||
"gulp": "3.X",
|
||||
|
||||
+106
-100
@@ -4338,7 +4338,7 @@ namespace ts {
|
||||
type = getTypeWithFacts(type, TypeFacts.NEUndefined);
|
||||
}
|
||||
return declaration.initializer ?
|
||||
getUnionType([type, checkExpressionCached(declaration.initializer)], /*subtypeReduction*/ true) :
|
||||
getUnionType([type, checkExpressionCached(declaration.initializer)], UnionReduction.Subtype) :
|
||||
type;
|
||||
}
|
||||
|
||||
@@ -4506,7 +4506,7 @@ namespace ts {
|
||||
}
|
||||
}
|
||||
|
||||
const type = jsDocType || getUnionType(types, /*subtypeReduction*/ true);
|
||||
const type = jsDocType || getUnionType(types, UnionReduction.Subtype);
|
||||
return getWidenedType(addOptionality(type, definedInMethod && !definedInConstructor));
|
||||
}
|
||||
|
||||
@@ -5339,7 +5339,7 @@ namespace ts {
|
||||
}
|
||||
}
|
||||
if (memberTypeList.length) {
|
||||
const enumType = getUnionType(memberTypeList, /*subtypeReduction*/ false, symbol, /*aliasTypeArguments*/ undefined);
|
||||
const enumType = getUnionType(memberTypeList, UnionReduction.Literal, symbol, /*aliasTypeArguments*/ undefined);
|
||||
if (enumType.flags & TypeFlags.Union) {
|
||||
enumType.flags |= TypeFlags.EnumLiteral;
|
||||
enumType.symbol = symbol;
|
||||
@@ -5902,7 +5902,7 @@ namespace ts {
|
||||
if (unionSignatures.length > 1) {
|
||||
let thisParameter = signature.thisParameter;
|
||||
if (forEach(unionSignatures, sig => sig.thisParameter)) {
|
||||
const thisType = getUnionType(map(unionSignatures, sig => getTypeOfSymbol(sig.thisParameter) || anyType), /*subtypeReduction*/ true);
|
||||
const thisType = getUnionType(map(unionSignatures, sig => getTypeOfSymbol(sig.thisParameter) || anyType), UnionReduction.Subtype);
|
||||
thisParameter = createSymbolWithType(signature.thisParameter, thisType);
|
||||
}
|
||||
s = cloneSignature(signature);
|
||||
@@ -5928,7 +5928,7 @@ namespace ts {
|
||||
indexTypes.push(indexInfo.type);
|
||||
isAnyReadonly = isAnyReadonly || indexInfo.isReadonly;
|
||||
}
|
||||
return createIndexInfo(getUnionType(indexTypes, /*subtypeReduction*/ true), isAnyReadonly);
|
||||
return createIndexInfo(getUnionType(indexTypes, UnionReduction.Subtype), isAnyReadonly);
|
||||
}
|
||||
|
||||
function resolveUnionTypeMembers(type: UnionType) {
|
||||
@@ -6616,7 +6616,7 @@ namespace ts {
|
||||
}
|
||||
}
|
||||
if (propTypes.length) {
|
||||
return getUnionType(propTypes, /*subtypeReduction*/ true);
|
||||
return getUnionType(propTypes, UnionReduction.Subtype);
|
||||
}
|
||||
}
|
||||
return undefined;
|
||||
@@ -7003,7 +7003,7 @@ namespace ts {
|
||||
type = instantiateType(getReturnTypeOfSignature(signature.target), signature.mapper);
|
||||
}
|
||||
else if (signature.unionSignatures) {
|
||||
type = getUnionType(map(signature.unionSignatures, getReturnTypeOfSignature), /*subtypeReduction*/ true);
|
||||
type = getUnionType(map(signature.unionSignatures, getReturnTypeOfSignature), UnionReduction.Subtype);
|
||||
}
|
||||
else {
|
||||
type = getReturnTypeFromBody(<FunctionLikeDeclaration>signature.declaration);
|
||||
@@ -7845,7 +7845,7 @@ namespace ts {
|
||||
// expression constructs such as array literals and the || and ?: operators). Named types can
|
||||
// circularly reference themselves and therefore cannot be subtype reduced during their declaration.
|
||||
// For example, "type Item = string | (() => Item" is a named type that circularly references itself.
|
||||
function getUnionType(types: Type[], subtypeReduction?: boolean, aliasSymbol?: Symbol, aliasTypeArguments?: Type[]): Type {
|
||||
function getUnionType(types: Type[], unionReduction: UnionReduction = UnionReduction.Literal, aliasSymbol?: Symbol, aliasTypeArguments?: Type[]): Type {
|
||||
if (types.length === 0) {
|
||||
return neverType;
|
||||
}
|
||||
@@ -7857,11 +7857,15 @@ namespace ts {
|
||||
if (typeSet.containsAny) {
|
||||
return anyType;
|
||||
}
|
||||
if (subtypeReduction) {
|
||||
removeSubtypes(typeSet);
|
||||
}
|
||||
else if (typeSet.containsLiteralOrUniqueESSymbol) {
|
||||
removeRedundantLiteralTypes(typeSet);
|
||||
switch (unionReduction) {
|
||||
case UnionReduction.Literal:
|
||||
if (typeSet.containsLiteralOrUniqueESSymbol) {
|
||||
removeRedundantLiteralTypes(typeSet);
|
||||
}
|
||||
break;
|
||||
case UnionReduction.Subtype:
|
||||
removeSubtypes(typeSet);
|
||||
break;
|
||||
}
|
||||
if (typeSet.length === 0) {
|
||||
return typeSet.containsNull ? typeSet.containsNonWideningType ? nullType : nullWideningType :
|
||||
@@ -7937,7 +7941,7 @@ namespace ts {
|
||||
function getTypeFromUnionTypeNode(node: UnionTypeNode): Type {
|
||||
const links = getNodeLinks(node);
|
||||
if (!links.resolvedType) {
|
||||
links.resolvedType = getUnionType(map(node.types, getTypeFromTypeNode), /*subtypeReduction*/ false,
|
||||
links.resolvedType = getUnionType(map(node.types, getTypeFromTypeNode), UnionReduction.Literal,
|
||||
getAliasSymbolForTypeNode(node), getAliasTypeArgumentsForTypeNode(node));
|
||||
}
|
||||
return links.resolvedType;
|
||||
@@ -8012,7 +8016,7 @@ namespace ts {
|
||||
// the form X & A & Y | X & B & Y and recursively reduce until no union type constituents remain.
|
||||
const unionType = <UnionType>typeSet[unionIndex];
|
||||
return getUnionType(map(unionType.types, t => getIntersectionType(replaceElement(typeSet, unionIndex, t))),
|
||||
/*subtypeReduction*/ false, aliasSymbol, aliasTypeArguments);
|
||||
UnionReduction.Literal, aliasSymbol, aliasTypeArguments);
|
||||
}
|
||||
const id = getTypeListId(typeSet);
|
||||
let type = intersectionTypes.get(id);
|
||||
@@ -8323,10 +8327,7 @@ namespace ts {
|
||||
if (right.flags & TypeFlags.Union) {
|
||||
return mapType(right, t => getSpreadType(left, t, symbol, propagatedFlags));
|
||||
}
|
||||
if (right.flags & TypeFlags.NonPrimitive) {
|
||||
return nonPrimitiveType;
|
||||
}
|
||||
if (right.flags & (TypeFlags.BooleanLike | TypeFlags.NumberLike | TypeFlags.StringLike | TypeFlags.EnumLike)) {
|
||||
if (right.flags & (TypeFlags.BooleanLike | TypeFlags.NumberLike | TypeFlags.StringLike | TypeFlags.EnumLike | TypeFlags.NonPrimitive)) {
|
||||
return left;
|
||||
}
|
||||
|
||||
@@ -8851,7 +8852,7 @@ namespace ts {
|
||||
}
|
||||
}
|
||||
if (type.flags & TypeFlags.Union && !(type.flags & TypeFlags.Primitive)) {
|
||||
return getUnionType(instantiateTypes((<UnionType>type).types, mapper), /*subtypeReduction*/ false, type.aliasSymbol, instantiateTypes(type.aliasTypeArguments, mapper));
|
||||
return getUnionType(instantiateTypes((<UnionType>type).types, mapper), UnionReduction.Literal, type.aliasSymbol, instantiateTypes(type.aliasTypeArguments, mapper));
|
||||
}
|
||||
if (type.flags & TypeFlags.Intersection) {
|
||||
return getIntersectionType(instantiateTypes((<IntersectionType>type).types, mapper), type.aliasSymbol, instantiateTypes(type.aliasTypeArguments, mapper));
|
||||
@@ -10713,7 +10714,7 @@ namespace ts {
|
||||
const primaryTypes = filter(types, t => !(t.flags & TypeFlags.Nullable));
|
||||
return primaryTypes.length ?
|
||||
getNullableType(getSupertypeOrUnion(primaryTypes), getFalsyFlagsOfTypes(types) & TypeFlags.Nullable) :
|
||||
getUnionType(types, /*subtypeReduction*/ true);
|
||||
getUnionType(types, UnionReduction.Subtype);
|
||||
}
|
||||
|
||||
// Return the leftmost type for which no type to the right is a subtype.
|
||||
@@ -11004,7 +11005,7 @@ namespace ts {
|
||||
// Widening an empty object literal transitions from a highly restrictive type to
|
||||
// a highly inclusive one. For that reason we perform subtype reduction here if the
|
||||
// union includes empty object types (e.g. reducing {} | string to just {}).
|
||||
return getUnionType(widenedTypes, some(widenedTypes, isEmptyObjectType));
|
||||
return getUnionType(widenedTypes, some(widenedTypes, isEmptyObjectType) ? UnionReduction.Subtype : UnionReduction.Literal);
|
||||
}
|
||||
if (isArrayType(type) || isTupleType(type)) {
|
||||
return createTypeReference((<TypeReference>type).target, sameMap((<TypeReference>type).typeArguments, getWidenedType));
|
||||
@@ -11251,7 +11252,7 @@ namespace ts {
|
||||
function inferTargetType(sourceType: Type): Type {
|
||||
inference.candidates = undefined;
|
||||
inferTypes(inferences, sourceType, templateType, 0, mappedTypeStack);
|
||||
return inference.candidates ? getUnionType(inference.candidates, /*subtypeReduction*/ true) : emptyObjectType;
|
||||
return inference.candidates ? getUnionType(inference.candidates, UnionReduction.Subtype) : emptyObjectType;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11610,7 +11611,7 @@ namespace ts {
|
||||
if (candidates.length > 1) {
|
||||
const objectLiterals = filter(candidates, isObjectLiteralType);
|
||||
if (objectLiterals.length) {
|
||||
const objectLiteralsType = getWidenedType(getUnionType(objectLiterals, /*subtypeReduction*/ true));
|
||||
const objectLiteralsType = getWidenedType(getUnionType(objectLiterals, UnionReduction.Subtype));
|
||||
return concatenate(filter(candidates, t => !isObjectLiteralType(t)), [objectLiteralsType]);
|
||||
}
|
||||
}
|
||||
@@ -11637,7 +11638,7 @@ namespace ts {
|
||||
// union types were requested or if all inferences were made from the return type position, infer a
|
||||
// union type. Otherwise, infer a common supertype.
|
||||
const unwidenedType = inference.priority & InferencePriority.Contravariant ? getCommonSubtype(baseCandidates) :
|
||||
context.flags & InferenceFlags.InferUnionTypes || inference.priority & InferencePriority.ReturnType ? getUnionType(baseCandidates, /*subtypeReduction*/ true) :
|
||||
context.flags & InferenceFlags.InferUnionTypes || inference.priority & InferencePriority.ReturnType ? getUnionType(baseCandidates, UnionReduction.Subtype) :
|
||||
getCommonSupertype(baseCandidates);
|
||||
inferredType = getWidenedType(unwidenedType);
|
||||
}
|
||||
@@ -12211,7 +12212,7 @@ namespace ts {
|
||||
// Apply a mapping function to a type and return the resulting type. If the source type
|
||||
// is a union type, the mapping function is applied to each constituent type and a union
|
||||
// of the resulting types is returned.
|
||||
function mapType(type: Type, mapper: (t: Type) => Type): Type {
|
||||
function mapType(type: Type, mapper: (t: Type) => Type, noReductions?: boolean): Type {
|
||||
if (!(type.flags & TypeFlags.Union)) {
|
||||
return mapper(type);
|
||||
}
|
||||
@@ -12232,7 +12233,7 @@ namespace ts {
|
||||
}
|
||||
}
|
||||
}
|
||||
return mappedTypes ? getUnionType(mappedTypes) : mappedType;
|
||||
return mappedTypes ? getUnionType(mappedTypes, noReductions ? UnionReduction.None : UnionReduction.Literal) : mappedType;
|
||||
}
|
||||
|
||||
function extractTypesOfKind(type: Type, kind: TypeFlags) {
|
||||
@@ -12291,7 +12292,7 @@ namespace ts {
|
||||
return elementType.flags & TypeFlags.Never ?
|
||||
autoArrayType :
|
||||
createArrayType(elementType.flags & TypeFlags.Union ?
|
||||
getUnionType((<UnionType>elementType).types, /*subtypeReduction*/ true) :
|
||||
getUnionType((<UnionType>elementType).types, UnionReduction.Subtype) :
|
||||
elementType);
|
||||
}
|
||||
|
||||
@@ -12324,7 +12325,7 @@ namespace ts {
|
||||
// At flow control branch or loop junctions, if the type along every antecedent code path
|
||||
// is an evolving array type, we construct a combined evolving array type. Otherwise we
|
||||
// finalize all evolving array types.
|
||||
function getUnionOrEvolvingArrayType(types: Type[], subtypeReduction: boolean) {
|
||||
function getUnionOrEvolvingArrayType(types: Type[], subtypeReduction: UnionReduction) {
|
||||
return isEvolvingArrayTypeList(types) ?
|
||||
getEvolvingArrayType(getUnionType(map(types, getElementTypeOfEvolvingArrayType))) :
|
||||
getUnionType(sameMap(types, finalizeEvolvingArrayType), subtypeReduction);
|
||||
@@ -12616,7 +12617,7 @@ namespace ts {
|
||||
seenIncomplete = true;
|
||||
}
|
||||
}
|
||||
return createFlowType(getUnionOrEvolvingArrayType(antecedentTypes, subtypeReduction), seenIncomplete);
|
||||
return createFlowType(getUnionOrEvolvingArrayType(antecedentTypes, subtypeReduction ? UnionReduction.Subtype : UnionReduction.Literal), seenIncomplete);
|
||||
}
|
||||
|
||||
function getTypeAtFlowLoopLabel(flow: FlowLabel): FlowType {
|
||||
@@ -12645,7 +12646,7 @@ namespace ts {
|
||||
// path that leads to the top.
|
||||
for (let i = flowLoopStart; i < flowLoopCount; i++) {
|
||||
if (flowLoopNodes[i] === flow && flowLoopKeys[i] === key && flowLoopTypes[i].length) {
|
||||
return createFlowType(getUnionOrEvolvingArrayType(flowLoopTypes[i], /*subtypeReduction*/ false), /*incomplete*/ true);
|
||||
return createFlowType(getUnionOrEvolvingArrayType(flowLoopTypes[i], UnionReduction.Literal), /*incomplete*/ true);
|
||||
}
|
||||
}
|
||||
// Add the flow loop junction and reference to the in-process stack and analyze
|
||||
@@ -12687,7 +12688,7 @@ namespace ts {
|
||||
}
|
||||
// The result is incomplete if the first antecedent (the non-looping control flow path)
|
||||
// is incomplete.
|
||||
const result = getUnionOrEvolvingArrayType(antecedentTypes, subtypeReduction);
|
||||
const result = getUnionOrEvolvingArrayType(antecedentTypes, subtypeReduction ? UnionReduction.Subtype : UnionReduction.Literal);
|
||||
if (isIncomplete(firstAntecedentType)) {
|
||||
return createFlowType(result, /*incomplete*/ true);
|
||||
}
|
||||
@@ -13123,6 +13124,12 @@ namespace ts {
|
||||
return type;
|
||||
}
|
||||
|
||||
function markAliasReferenced(symbol: Symbol, location: Node) {
|
||||
if (isNonLocalAlias(symbol, /*excludes*/ SymbolFlags.Value) && !isInTypeQuery(location) && !isConstEnumOrConstEnumOnlyModule(resolveAlias(symbol))) {
|
||||
markAliasSymbolAsReferenced(symbol);
|
||||
}
|
||||
}
|
||||
|
||||
function checkIdentifier(node: Identifier): Type {
|
||||
const symbol = getResolvedSymbol(node);
|
||||
if (symbol === unknownSymbol) {
|
||||
@@ -13151,9 +13158,9 @@ namespace ts {
|
||||
}
|
||||
|
||||
// We should only mark aliases as referenced if there isn't a local value declaration
|
||||
// for the symbol.
|
||||
if (isNonLocalAlias(symbol, /*excludes*/ SymbolFlags.Value) && !isInTypeQuery(node) && !isConstEnumOrConstEnumOnlyModule(resolveAlias(symbol))) {
|
||||
markAliasSymbolAsReferenced(symbol);
|
||||
// for the symbol. Also, don't mark any property access expression LHS - checkPropertyAccessExpression will handle that
|
||||
if (!(node.parent && isPropertyAccessExpression(node.parent) && node.parent.expression === node)) {
|
||||
markAliasReferenced(symbol, node);
|
||||
}
|
||||
|
||||
const localOrExportSymbol = getExportSymbolOfValueSymbolIfExported(symbol);
|
||||
@@ -14046,11 +14053,11 @@ namespace ts {
|
||||
return mapType(type, t => {
|
||||
const prop = t.flags & TypeFlags.StructuredType ? getPropertyOfType(t, name) : undefined;
|
||||
return prop ? getTypeOfSymbol(prop) : undefined;
|
||||
});
|
||||
}, /*noReductions*/ true);
|
||||
}
|
||||
|
||||
function getIndexTypeOfContextualType(type: Type, kind: IndexKind) {
|
||||
return mapType(type, t => getIndexTypeOfStructuredType(t, kind));
|
||||
return mapType(type, t => getIndexTypeOfStructuredType(t, kind), /*noReductions*/ true);
|
||||
}
|
||||
|
||||
// Return true if the given contextual type is a tuple-like type
|
||||
@@ -14457,7 +14464,7 @@ namespace ts {
|
||||
}
|
||||
}
|
||||
return createArrayType(elementTypes.length ?
|
||||
getUnionType(elementTypes, /*subtypeReduction*/ true) :
|
||||
getUnionType(elementTypes, UnionReduction.Subtype) :
|
||||
strictNullChecks ? implicitNeverType : undefinedWideningType);
|
||||
}
|
||||
|
||||
@@ -14536,7 +14543,7 @@ namespace ts {
|
||||
propTypes.push(getTypeOfSymbol(properties[i]));
|
||||
}
|
||||
}
|
||||
const unionType = propTypes.length ? getUnionType(propTypes, /*subtypeReduction*/ true) : undefinedType;
|
||||
const unionType = propTypes.length ? getUnionType(propTypes, UnionReduction.Subtype) : undefinedType;
|
||||
return createIndexInfo(unionType, /*isReadonly*/ false);
|
||||
}
|
||||
|
||||
@@ -14883,7 +14890,7 @@ namespace ts {
|
||||
const childrenPropSymbol = createSymbol(SymbolFlags.Property | SymbolFlags.Transient, jsxChildrenPropertyName);
|
||||
childrenPropSymbol.type = childrenTypes.length === 1 ?
|
||||
childrenTypes[0] :
|
||||
createArrayType(getUnionType(childrenTypes, /*subtypeReduction*/ false));
|
||||
createArrayType(getUnionType(childrenTypes));
|
||||
attributesTable.set(jsxChildrenPropertyName, childrenPropSymbol);
|
||||
}
|
||||
}
|
||||
@@ -15019,7 +15026,7 @@ namespace ts {
|
||||
}
|
||||
}
|
||||
|
||||
return getUnionType(map(instantiatedSignatures, getReturnTypeOfSignature), /*subtypeReduction*/ true);
|
||||
return getUnionType(map(instantiatedSignatures, getReturnTypeOfSignature), UnionReduction.Subtype);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -15211,7 +15218,7 @@ namespace ts {
|
||||
const types = (elementType as UnionType).types;
|
||||
return getUnionType(types.map(type => {
|
||||
return resolveCustomJsxElementAttributesType(openingLikeElement, shouldIncludeAllStatelessAttributesType, type, elementClassType);
|
||||
}), /*subtypeReduction*/ true);
|
||||
}), UnionReduction.Subtype);
|
||||
}
|
||||
|
||||
// If the elemType is a string type, we have to return anyType to prevent an error downstream as we will try to find construct or call signature of the type
|
||||
@@ -15711,15 +15718,20 @@ namespace ts {
|
||||
|
||||
function checkPropertyAccessExpressionOrQualifiedName(node: PropertyAccessExpression | QualifiedName, left: Expression | QualifiedName, right: Identifier) {
|
||||
let propType: Type;
|
||||
let leftSymbol = getNodeLinks(left) && getNodeLinks(left).resolvedSymbol;
|
||||
const leftWasReferenced = leftSymbol && getSymbolLinks(leftSymbol).referenced;
|
||||
const leftType = checkNonNullExpression(left);
|
||||
const parentSymbol = getNodeLinks(left).resolvedSymbol;
|
||||
const apparentType = getApparentType(getWidenedType(leftType));
|
||||
if (isTypeAny(apparentType) || apparentType === silentNeverType) {
|
||||
if (isIdentifier(left) && parentSymbol) {
|
||||
markAliasReferenced(parentSymbol, node);
|
||||
}
|
||||
return apparentType;
|
||||
}
|
||||
const assignmentKind = getAssignmentTargetKind(node);
|
||||
const prop = getPropertyOfType(apparentType, right.escapedText);
|
||||
if (isIdentifier(left) && parentSymbol && !(prop && isConstEnumOrConstEnumOnlyModule(prop))) {
|
||||
markAliasReferenced(parentSymbol, node);
|
||||
}
|
||||
if (!prop) {
|
||||
const indexInfo = getIndexInfoOfType(apparentType, IndexKind.String);
|
||||
if (!(indexInfo && indexInfo.type)) {
|
||||
@@ -15736,13 +15748,6 @@ namespace ts {
|
||||
else {
|
||||
checkPropertyNotUsedBeforeDeclaration(prop, node, right);
|
||||
markPropertyAsReferenced(prop, node, left.kind === SyntaxKind.ThisKeyword);
|
||||
// Reset the referenced-ness of the LHS expression if this access refers to a const enum or const enum only module
|
||||
leftSymbol = getNodeLinks(left) && getNodeLinks(left).resolvedSymbol;
|
||||
if (leftSymbol && !leftWasReferenced && getSymbolLinks(leftSymbol).referenced &&
|
||||
!(isNonLocalAlias(leftSymbol, /*excludes*/ SymbolFlags.Value) && !isInTypeQuery(node) && !isConstEnumOrConstEnumOnlyModule(prop))
|
||||
) {
|
||||
getSymbolLinks(leftSymbol).referenced = undefined;
|
||||
}
|
||||
getNodeLinks(node).resolvedSymbol = prop;
|
||||
checkPropertyAccessibility(node, left, apparentType, prop);
|
||||
if (assignmentKind) {
|
||||
@@ -17964,7 +17969,7 @@ namespace ts {
|
||||
}
|
||||
|
||||
// Return a union of the return expression types.
|
||||
type = getUnionType(types, /*subtypeReduction*/ true);
|
||||
type = getUnionType(types, UnionReduction.Subtype);
|
||||
}
|
||||
|
||||
if (!contextualSignature) {
|
||||
@@ -18872,7 +18877,7 @@ namespace ts {
|
||||
leftType;
|
||||
case SyntaxKind.BarBarToken:
|
||||
return getTypeFacts(leftType) & TypeFacts.Falsy ?
|
||||
getUnionType([removeDefinitelyFalsyTypes(leftType), rightType], /*subtypeReduction*/ true) :
|
||||
getUnionType([removeDefinitelyFalsyTypes(leftType), rightType], UnionReduction.Subtype) :
|
||||
leftType;
|
||||
case SyntaxKind.EqualsToken:
|
||||
checkAssignmentOperator(rightType);
|
||||
@@ -19032,7 +19037,7 @@ namespace ts {
|
||||
checkExpression(node.condition);
|
||||
const type1 = checkExpression(node.whenTrue, checkMode);
|
||||
const type2 = checkExpression(node.whenFalse, checkMode);
|
||||
return getUnionType([type1, type2], /*subtypeReduction*/ true);
|
||||
return getUnionType([type1, type2], UnionReduction.Subtype);
|
||||
}
|
||||
|
||||
function checkTemplateExpression(node: TemplateExpression): Type {
|
||||
@@ -19089,7 +19094,7 @@ namespace ts {
|
||||
|
||||
function isLiteralOfContextualType(candidateType: Type, contextualType: Type): boolean {
|
||||
if (contextualType) {
|
||||
if (contextualType.flags & TypeFlags.Union && !(contextualType.flags & TypeFlags.Boolean)) {
|
||||
if (contextualType.flags & TypeFlags.UnionOrIntersection && !(contextualType.flags & TypeFlags.Boolean)) {
|
||||
// If the contextual type is a union containing both of the 'true' and 'false' types we
|
||||
// don't consider it a literal context for boolean literals.
|
||||
const types = (<UnionType>contextualType).types;
|
||||
@@ -20473,7 +20478,7 @@ namespace ts {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
return typeAsPromise.promisedTypeOfPromise = getUnionType(map(onfulfilledParameterSignatures, getTypeOfFirstParameterOfSignature), /*subtypeReduction*/ true);
|
||||
return typeAsPromise.promisedTypeOfPromise = getUnionType(map(onfulfilledParameterSignatures, getTypeOfFirstParameterOfSignature), UnionReduction.Subtype);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -21904,7 +21909,7 @@ namespace ts {
|
||||
const arrayTypes = (<UnionType>inputType).types;
|
||||
const filteredTypes = filter(arrayTypes, t => !(t.flags & TypeFlags.StringLike));
|
||||
if (filteredTypes !== arrayTypes) {
|
||||
arrayType = getUnionType(filteredTypes, /*subtypeReduction*/ true);
|
||||
arrayType = getUnionType(filteredTypes, UnionReduction.Subtype);
|
||||
}
|
||||
}
|
||||
else if (arrayType.flags & TypeFlags.StringLike) {
|
||||
@@ -21954,7 +21959,7 @@ namespace ts {
|
||||
return stringType;
|
||||
}
|
||||
|
||||
return getUnionType([arrayElementType, stringType], /*subtypeReduction*/ true);
|
||||
return getUnionType([arrayElementType, stringType], UnionReduction.Subtype);
|
||||
}
|
||||
|
||||
return arrayElementType;
|
||||
@@ -22052,7 +22057,7 @@ namespace ts {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
const returnType = getUnionType(map(signatures, getReturnTypeOfSignature), /*subtypeReduction*/ true);
|
||||
const returnType = getUnionType(map(signatures, getReturnTypeOfSignature), UnionReduction.Subtype);
|
||||
const iteratedType = getIteratedTypeOfIterator(returnType, errorNode, /*isAsyncIterator*/ !!asyncMethodType);
|
||||
if (checkAssignability && errorNode && iteratedType) {
|
||||
// If `checkAssignability` was specified, we were called from
|
||||
@@ -22127,7 +22132,7 @@ namespace ts {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
let nextResult = getUnionType(map(nextMethodSignatures, getReturnTypeOfSignature), /*subtypeReduction*/ true);
|
||||
let nextResult = getUnionType(map(nextMethodSignatures, getReturnTypeOfSignature), UnionReduction.Subtype);
|
||||
if (isTypeAny(nextResult)) {
|
||||
return undefined;
|
||||
}
|
||||
@@ -22191,57 +22196,58 @@ namespace ts {
|
||||
|
||||
function checkReturnStatement(node: ReturnStatement) {
|
||||
// Grammar checking
|
||||
if (!checkGrammarStatementInAmbientContext(node)) {
|
||||
const functionBlock = getContainingFunction(node);
|
||||
if (!functionBlock) {
|
||||
grammarErrorOnFirstToken(node, Diagnostics.A_return_statement_can_only_be_used_within_a_function_body);
|
||||
}
|
||||
if (checkGrammarStatementInAmbientContext(node)) {
|
||||
return;
|
||||
}
|
||||
|
||||
const func = getContainingFunction(node);
|
||||
if (func) {
|
||||
const signature = getSignatureFromDeclaration(func);
|
||||
const returnType = getReturnTypeOfSignature(signature);
|
||||
const functionFlags = getFunctionFlags(func);
|
||||
if (functionFlags & FunctionFlags.Generator) { // AsyncGenerator function or Generator function
|
||||
if (!func) {
|
||||
grammarErrorOnFirstToken(node, Diagnostics.A_return_statement_can_only_be_used_within_a_function_body);
|
||||
return;
|
||||
}
|
||||
|
||||
const signature = getSignatureFromDeclaration(func);
|
||||
const returnType = getReturnTypeOfSignature(signature);
|
||||
const functionFlags = getFunctionFlags(func);
|
||||
const isGenerator = functionFlags & FunctionFlags.Generator;
|
||||
if (strictNullChecks || node.expression || returnType.flags & TypeFlags.Never) {
|
||||
const exprType = node.expression ? checkExpressionCached(node.expression) : undefinedType;
|
||||
if (isGenerator) { // AsyncGenerator function or Generator function
|
||||
// A generator does not need its return expressions checked against its return type.
|
||||
// Instead, the yield expressions are checked against the element type.
|
||||
// TODO: Check return expressions of generators when return type tracking is added
|
||||
// TODO: Check return types of generators when return type tracking is added
|
||||
// for generators.
|
||||
return;
|
||||
}
|
||||
if (strictNullChecks || node.expression || returnType.flags & TypeFlags.Never) {
|
||||
const exprType = node.expression ? checkExpressionCached(node.expression) : undefinedType;
|
||||
if (func.kind === SyntaxKind.SetAccessor) {
|
||||
if (node.expression) {
|
||||
error(node, Diagnostics.Setters_cannot_return_a_value);
|
||||
}
|
||||
}
|
||||
else if (func.kind === SyntaxKind.Constructor) {
|
||||
if (node.expression && !checkTypeAssignableTo(exprType, returnType, node)) {
|
||||
error(node, Diagnostics.Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class);
|
||||
}
|
||||
}
|
||||
else if (getEffectiveReturnTypeNode(func) || isGetAccessorWithAnnotatedSetAccessor(func)) {
|
||||
if (functionFlags & FunctionFlags.Async) { // Async function
|
||||
const promisedType = getPromisedTypeOfPromise(returnType);
|
||||
const awaitedType = checkAwaitedType(exprType, node, Diagnostics.The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member);
|
||||
if (promisedType) {
|
||||
// If the function has a return type, but promisedType is
|
||||
// undefined, an error will be reported in checkAsyncFunctionReturnType
|
||||
// so we don't need to report one here.
|
||||
checkTypeAssignableTo(awaitedType, promisedType, node);
|
||||
}
|
||||
}
|
||||
else {
|
||||
checkTypeAssignableTo(exprType, returnType, node);
|
||||
}
|
||||
else if (func.kind === SyntaxKind.SetAccessor) {
|
||||
if (node.expression) {
|
||||
error(node, Diagnostics.Setters_cannot_return_a_value);
|
||||
}
|
||||
}
|
||||
else if (func.kind !== SyntaxKind.Constructor && compilerOptions.noImplicitReturns && !isUnwrappedReturnTypeVoidOrAny(func, returnType)) {
|
||||
// The function has a return type, but the return statement doesn't have an expression.
|
||||
error(node, Diagnostics.Not_all_code_paths_return_a_value);
|
||||
else if (func.kind === SyntaxKind.Constructor) {
|
||||
if (node.expression && !checkTypeAssignableTo(exprType, returnType, node)) {
|
||||
error(node, Diagnostics.Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class);
|
||||
}
|
||||
}
|
||||
else if (getEffectiveReturnTypeNode(func) || isGetAccessorWithAnnotatedSetAccessor(func)) {
|
||||
if (functionFlags & FunctionFlags.Async) { // Async function
|
||||
const promisedType = getPromisedTypeOfPromise(returnType);
|
||||
const awaitedType = checkAwaitedType(exprType, node, Diagnostics.The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member);
|
||||
if (promisedType) {
|
||||
// If the function has a return type, but promisedType is
|
||||
// undefined, an error will be reported in checkAsyncFunctionReturnType
|
||||
// so we don't need to report one here.
|
||||
checkTypeAssignableTo(awaitedType, promisedType, node);
|
||||
}
|
||||
}
|
||||
else {
|
||||
checkTypeAssignableTo(exprType, returnType, node);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (func.kind !== SyntaxKind.Constructor && compilerOptions.noImplicitReturns && !isUnwrappedReturnTypeVoidOrAny(func, returnType) && !isGenerator) {
|
||||
// The function has a return type, but the return statement doesn't have an expression.
|
||||
error(node, Diagnostics.Not_all_code_paths_return_a_value);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -288,6 +288,8 @@ namespace ts {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
export function findLast<T, U extends T>(array: ReadonlyArray<T>, predicate: (element: T, index: number) => element is U): U | undefined;
|
||||
export function findLast<T>(array: ReadonlyArray<T>, predicate: (element: T, index: number) => boolean): T | undefined;
|
||||
export function findLast<T>(array: ReadonlyArray<T>, predicate: (element: T, index: number) => boolean): T | undefined {
|
||||
for (let i = array.length - 1; i >= 0; i--) {
|
||||
const value = array[i];
|
||||
|
||||
@@ -3424,6 +3424,10 @@
|
||||
"category": "Error",
|
||||
"code": 6188
|
||||
},
|
||||
"Multiple consecutive numeric separators are not permitted.": {
|
||||
"category": "Error",
|
||||
"code": 6189
|
||||
},
|
||||
"Variable '{0}' implicitly has an '{1}' type.": {
|
||||
"category": "Error",
|
||||
"code": 7005
|
||||
|
||||
@@ -5462,6 +5462,7 @@ namespace ts {
|
||||
switch (token()) {
|
||||
case SyntaxKind.OpenParenToken: // Method declaration
|
||||
case SyntaxKind.LessThanToken: // Generic Method declaration
|
||||
case SyntaxKind.ExclamationToken: // Non-null assertion on property name
|
||||
case SyntaxKind.ColonToken: // Type Annotation for declaration
|
||||
case SyntaxKind.EqualsToken: // Initializer for declaration
|
||||
case SyntaxKind.QuestionToken: // Not valid, but permitted so that it gets caught later on.
|
||||
|
||||
@@ -866,6 +866,7 @@ namespace ts {
|
||||
function scanNumberFragment(): string {
|
||||
let start = pos;
|
||||
let allowSeparator = false;
|
||||
let isPreviousTokenSeparator = false;
|
||||
let result = "";
|
||||
while (true) {
|
||||
const ch = text.charCodeAt(pos);
|
||||
@@ -873,8 +874,12 @@ namespace ts {
|
||||
tokenFlags |= TokenFlags.ContainsSeparator;
|
||||
if (allowSeparator) {
|
||||
allowSeparator = false;
|
||||
isPreviousTokenSeparator = true;
|
||||
result += text.substring(start, pos);
|
||||
}
|
||||
else if (isPreviousTokenSeparator) {
|
||||
error(Diagnostics.Multiple_consecutive_numeric_separators_are_not_permitted, pos, 1);
|
||||
}
|
||||
else {
|
||||
error(Diagnostics.Numeric_separators_are_not_allowed_here, pos, 1);
|
||||
}
|
||||
@@ -884,6 +889,7 @@ namespace ts {
|
||||
}
|
||||
if (isDigit(ch)) {
|
||||
allowSeparator = true;
|
||||
isPreviousTokenSeparator = false;
|
||||
pos++;
|
||||
continue;
|
||||
}
|
||||
@@ -962,12 +968,17 @@ namespace ts {
|
||||
let digits = 0;
|
||||
let value = 0;
|
||||
let allowSeparator = false;
|
||||
let isPreviousTokenSeparator = false;
|
||||
while (digits < minCount || scanAsManyAsPossible) {
|
||||
const ch = text.charCodeAt(pos);
|
||||
if (canHaveSeparators && ch === CharacterCodes._) {
|
||||
tokenFlags |= TokenFlags.ContainsSeparator;
|
||||
if (allowSeparator) {
|
||||
allowSeparator = false;
|
||||
isPreviousTokenSeparator = true;
|
||||
}
|
||||
else if (isPreviousTokenSeparator) {
|
||||
error(Diagnostics.Multiple_consecutive_numeric_separators_are_not_permitted, pos, 1);
|
||||
}
|
||||
else {
|
||||
error(Diagnostics.Numeric_separators_are_not_allowed_here, pos, 1);
|
||||
@@ -990,6 +1001,7 @@ namespace ts {
|
||||
}
|
||||
pos++;
|
||||
digits++;
|
||||
isPreviousTokenSeparator = false;
|
||||
}
|
||||
if (digits < minCount) {
|
||||
value = -1;
|
||||
@@ -1287,6 +1299,7 @@ namespace ts {
|
||||
// Similarly valid octalIntegerLiteral must have at least one octal digit following o or O.
|
||||
let numberOfDigits = 0;
|
||||
let separatorAllowed = false;
|
||||
let isPreviousTokenSeparator = false;
|
||||
while (true) {
|
||||
const ch = text.charCodeAt(pos);
|
||||
// Numeric seperators are allowed anywhere within a numeric literal, except not at the beginning, or following another separator
|
||||
@@ -1294,6 +1307,10 @@ namespace ts {
|
||||
tokenFlags |= TokenFlags.ContainsSeparator;
|
||||
if (separatorAllowed) {
|
||||
separatorAllowed = false;
|
||||
isPreviousTokenSeparator = true;
|
||||
}
|
||||
else if (isPreviousTokenSeparator) {
|
||||
error(Diagnostics.Multiple_consecutive_numeric_separators_are_not_permitted, pos, 1);
|
||||
}
|
||||
else {
|
||||
error(Diagnostics.Numeric_separators_are_not_allowed_here, pos, 1);
|
||||
@@ -1309,6 +1326,7 @@ namespace ts {
|
||||
value = value * base + valueOfCh;
|
||||
pos++;
|
||||
numberOfDigits++;
|
||||
isPreviousTokenSeparator = false;
|
||||
}
|
||||
// Invalid binaryIntegerLiteral or octalIntegerLiteral
|
||||
if (numberOfDigits === 0) {
|
||||
|
||||
@@ -2787,7 +2787,7 @@ namespace ts {
|
||||
/* @internal */ getNullType(): Type;
|
||||
/* @internal */ getESSymbolType(): Type;
|
||||
/* @internal */ getNeverType(): Type;
|
||||
/* @internal */ getUnionType(types: Type[], subtypeReduction?: boolean): Type;
|
||||
/* @internal */ getUnionType(types: Type[], subtypeReduction?: UnionReduction): Type;
|
||||
/* @internal */ createArrayType(elementType: Type): Type;
|
||||
/* @internal */ createPromiseType(type: Type): Type;
|
||||
|
||||
@@ -2842,6 +2842,13 @@ namespace ts {
|
||||
/* @internal */ getAccessibleSymbolChain(symbol: Symbol, enclosingDeclaration: Node | undefined, meaning: SymbolFlags, useOnlyExternalAliasing: boolean): Symbol[] | undefined;
|
||||
}
|
||||
|
||||
/* @internal */
|
||||
export const enum UnionReduction {
|
||||
None = 0,
|
||||
Literal,
|
||||
Subtype
|
||||
}
|
||||
|
||||
export enum NodeBuilderFlags {
|
||||
None = 0,
|
||||
// Options
|
||||
|
||||
@@ -297,7 +297,7 @@ namespace FourSlash {
|
||||
const host = new Utils.MockParseConfigHost(baseDir, /*ignoreCase*/ false, this.inputFiles);
|
||||
|
||||
const configJsonObj = ts.parseConfigFileTextToJson(configFileName, this.inputFiles.get(configFileName));
|
||||
assert(configJsonObj.config !== undefined);
|
||||
assert.isTrue(configJsonObj.config !== undefined);
|
||||
|
||||
const { options, errors } = ts.parseJsonConfigFileContent(configJsonObj.config, host, baseDir);
|
||||
|
||||
@@ -443,7 +443,7 @@ namespace FourSlash {
|
||||
|
||||
public goToEachMarker(action: () => void) {
|
||||
const markers = this.getMarkers();
|
||||
assert(markers.length !== 0);
|
||||
assert(markers.length);
|
||||
for (const marker of markers) {
|
||||
this.goToMarker(marker);
|
||||
action();
|
||||
@@ -452,7 +452,7 @@ namespace FourSlash {
|
||||
|
||||
public goToEachRange(action: () => void) {
|
||||
const ranges = this.getRanges();
|
||||
assert(ranges.length !== 0);
|
||||
assert(ranges.length);
|
||||
for (const range of ranges) {
|
||||
this.goToRangeStart(range);
|
||||
action();
|
||||
@@ -799,7 +799,7 @@ namespace FourSlash {
|
||||
}
|
||||
|
||||
const entries = this.getCompletionListAtCaret().entries;
|
||||
assert(items.length <= entries.length, `Amount of expected items in completion list [ ${items.length} ] is greater than actual number of items in list [ ${entries.length} ]`);
|
||||
assert.isTrue(items.length <= entries.length, `Amount of expected items in completion list [ ${items.length} ] is greater than actual number of items in list [ ${entries.length} ]`);
|
||||
ts.zipWith(entries, items, (entry, item) => {
|
||||
assert.equal(entry.name, item, `Unexpected item in completion list`);
|
||||
});
|
||||
@@ -953,7 +953,7 @@ namespace FourSlash {
|
||||
public verifyCompletionEntryDetails(entryName: string, expectedText: string, expectedDocumentation?: string, kind?: string, tags?: ts.JSDocTagInfo[]) {
|
||||
const details = this.getCompletionEntryDetails(entryName);
|
||||
|
||||
assert.isDefined(details, "no completion entry available");
|
||||
assert(details, "no completion entry available");
|
||||
|
||||
assert.equal(ts.displayPartsToString(details.displayParts), expectedText, this.assertionMessageAtLastKnownMarker("completion entry details text"));
|
||||
|
||||
@@ -1088,7 +1088,7 @@ namespace FourSlash {
|
||||
|
||||
public verifyRangesReferenceEachOther(ranges?: Range[]) {
|
||||
ranges = ranges || this.getRanges();
|
||||
assert(ranges.length !== 0);
|
||||
assert(ranges.length);
|
||||
for (const range of ranges) {
|
||||
this.verifyReferencesOf(range, ranges);
|
||||
}
|
||||
@@ -1374,6 +1374,7 @@ Actual: ${stringify(fullActual)}`);
|
||||
|
||||
public verifyCurrentParameterIsVariable(isVariable: boolean) {
|
||||
const signature = this.getActiveSignatureHelpItem();
|
||||
assert.isOk(signature);
|
||||
assert.equal(isVariable, signature.isVariadic);
|
||||
}
|
||||
|
||||
@@ -2024,7 +2025,7 @@ Actual: ${stringify(fullActual)}`);
|
||||
const implementations = this.languageService.getImplementationAtPosition(this.activeFile.fileName, this.currentCaretPosition);
|
||||
|
||||
if (negative) {
|
||||
assert(implementations && implementations.length > 0, "Expected at least one implementation but got 0");
|
||||
assert.isTrue(implementations && implementations.length > 0, "Expected at least one implementation but got 0");
|
||||
}
|
||||
else {
|
||||
assert.isUndefined(implementations, "Expected implementation list to be empty but implementations returned");
|
||||
@@ -3128,7 +3129,7 @@ Actual: ${stringify(fullActual)}`);
|
||||
|
||||
if (spanIndex !== undefined) {
|
||||
const span = this.getTextSpanForRangeAtIndex(spanIndex);
|
||||
assert(TestState.textSpansEqual(span, item.replacementSpan), this.assertionMessageAtLastKnownMarker(stringify(span) + " does not equal " + stringify(item.replacementSpan) + " replacement span for " + entryId));
|
||||
assert.isTrue(TestState.textSpansEqual(span, item.replacementSpan), this.assertionMessageAtLastKnownMarker(stringify(span) + " does not equal " + stringify(item.replacementSpan) + " replacement span for " + entryId));
|
||||
}
|
||||
|
||||
assert.equal(item.hasAction, hasAction);
|
||||
|
||||
+33
-54
@@ -23,60 +23,39 @@
|
||||
/// <reference path="virtualFileSystem.ts" />
|
||||
/// <reference types="node" />
|
||||
/// <reference types="mocha" />
|
||||
/// <reference types="chai" />
|
||||
|
||||
|
||||
// Block scoped definitions work poorly for global variables, temporarily enable var
|
||||
/* tslint:disable:no-var-keyword */
|
||||
|
||||
function assert(expr: boolean, msg?: string | (() => string)): void {
|
||||
if (!expr) {
|
||||
throw new Error(typeof msg === "string" ? msg : msg());
|
||||
}
|
||||
}
|
||||
namespace assert {
|
||||
export function isFalse(expr: boolean, msg = "Expected value to be false."): void {
|
||||
assert(!expr, msg);
|
||||
}
|
||||
export function equal<T>(a: T, b: T, msg?: string): void {
|
||||
assert(a === b, msg || (() => `Expected to be equal:\nExpected:\n${JSON.stringify(a)}\nActual:\n${JSON.stringify(b)}`));
|
||||
}
|
||||
export function notEqual<T>(a: T, b: T, msg = "Expected values to not be equal."): void {
|
||||
assert(a !== b, msg);
|
||||
}
|
||||
export function isDefined(x: {} | null | undefined, msg = "Expected value to be defined."): void {
|
||||
assert(x !== undefined && x !== null, msg);
|
||||
}
|
||||
export function isUndefined(x: {} | null | undefined, msg = "Expected value to be undefined."): void {
|
||||
assert(x === undefined, msg);
|
||||
}
|
||||
export function deepEqual<T>(a: T, b: T, msg?: string): void {
|
||||
assert(isDeepEqual(a, b), msg || (() => `Expected values to be deeply equal:\nExpected:\n${JSON.stringify(a, undefined, 4)}\nActual:\n${JSON.stringify(b, undefined, 4)}`));
|
||||
}
|
||||
export function lengthOf(a: ReadonlyArray<{}>, length: number, msg = "Expected length to match."): void {
|
||||
assert(a.length === length, msg);
|
||||
}
|
||||
export function throws(cb: () => void, msg = "Expected callback to throw"): void {
|
||||
let threw = false;
|
||||
try {
|
||||
cb();
|
||||
}
|
||||
catch {
|
||||
threw = true;
|
||||
}
|
||||
assert(threw, msg);
|
||||
}
|
||||
// this will work in the browser via browserify
|
||||
var _chai: typeof chai = require("chai");
|
||||
var assert: typeof _chai.assert = _chai.assert;
|
||||
{
|
||||
// chai's builtin `assert.isFalse` is featureful but slow - we don't use those features,
|
||||
// so we'll just overwrite it as an alterative to migrating a bunch of code off of chai
|
||||
assert.isFalse = (expr, msg) => { if (expr as any as boolean !== false) throw new Error(msg); };
|
||||
|
||||
function isDeepEqual<T>(a: T, b: T): boolean {
|
||||
if (a === b) {
|
||||
return true;
|
||||
const assertDeepImpl = assert.deepEqual;
|
||||
assert.deepEqual = (a, b, msg) => {
|
||||
if (ts.isArray(a) && ts.isArray(b)) {
|
||||
assertDeepImpl(arrayExtraKeysObject(a), arrayExtraKeysObject(b), "Array extra keys differ");
|
||||
}
|
||||
if (typeof a !== "object" || typeof b !== "object" || a === null || b === null) {
|
||||
return false;
|
||||
assertDeepImpl(a, b, msg);
|
||||
|
||||
function arrayExtraKeysObject(a: ReadonlyArray<{} | null | undefined>): object {
|
||||
const obj: { [key: string]: {} | null | undefined } = {};
|
||||
for (const key in a) {
|
||||
if (Number.isNaN(Number(key))) {
|
||||
obj[key] = a[key];
|
||||
}
|
||||
}
|
||||
return obj;
|
||||
}
|
||||
const aKeys = Object.keys(a).sort();
|
||||
const bKeys = Object.keys(b).sort();
|
||||
return aKeys.length === bKeys.length && aKeys.every((key, i) => bKeys[i] === key && isDeepEqual((a as any)[key], (b as any)[key]));
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
declare var __dirname: string; // Node-specific
|
||||
var global: NodeJS.Global = <any>Function("return this").call(undefined);
|
||||
|
||||
@@ -389,8 +368,8 @@ namespace Utils {
|
||||
return;
|
||||
}
|
||||
|
||||
assert(!!array1, "array1");
|
||||
assert(!!array2, "array2");
|
||||
assert(array1, "array1");
|
||||
assert(array2, "array2");
|
||||
|
||||
assert.equal(array1.length, array2.length, "array1.length !== array2.length");
|
||||
|
||||
@@ -413,8 +392,8 @@ namespace Utils {
|
||||
return;
|
||||
}
|
||||
|
||||
assert(!!node1, "node1");
|
||||
assert(!!node2, "node2");
|
||||
assert(node1, "node1");
|
||||
assert(node2, "node2");
|
||||
assert.equal(node1.pos, node2.pos, "node1.pos !== node2.pos");
|
||||
assert.equal(node1.end, node2.end, "node1.end !== node2.end");
|
||||
assert.equal(node1.kind, node2.kind, "node1.kind !== node2.kind");
|
||||
@@ -444,8 +423,8 @@ namespace Utils {
|
||||
return;
|
||||
}
|
||||
|
||||
assert(!!array1, "array1");
|
||||
assert(!!array2, "array2");
|
||||
assert(array1, "array1");
|
||||
assert(array2, "array2");
|
||||
assert.equal(array1.pos, array2.pos, "array1.pos !== array2.pos");
|
||||
assert.equal(array1.end, array2.end, "array1.end !== array2.end");
|
||||
assert.equal(array1.length, array2.length, "array1.length !== array2.length");
|
||||
@@ -1301,7 +1280,7 @@ namespace Harness {
|
||||
|
||||
function findResultCodeFile(fileName: string) {
|
||||
const sourceFile = result.program.getSourceFile(fileName);
|
||||
assert.isDefined(sourceFile, "Program has no source file with name '" + fileName + "'");
|
||||
assert(sourceFile, "Program has no source file with name '" + fileName + "'");
|
||||
// Is this file going to be emitted separately
|
||||
let sourceFileName: string;
|
||||
const outFile = options.outFile || options.out;
|
||||
@@ -1984,7 +1963,7 @@ namespace Harness {
|
||||
const data = testUnitData[i];
|
||||
if (ts.getBaseFileName(data.name).toLowerCase() === "tsconfig.json") {
|
||||
const configJson = ts.parseJsonText(data.name, data.content);
|
||||
assert(configJson.endOfFileToken !== undefined);
|
||||
assert.isTrue(configJson.endOfFileToken !== undefined);
|
||||
let baseDir = ts.normalizePath(ts.getDirectoryPath(data.name));
|
||||
if (rootDir) {
|
||||
baseDir = ts.getNormalizedAbsolutePath(baseDir, rootDir);
|
||||
|
||||
@@ -176,7 +176,8 @@ namespace Harness.LanguageService {
|
||||
*/
|
||||
public positionToLineAndCharacter(fileName: string, position: number): ts.LineAndCharacter {
|
||||
const script: ScriptInfo = this.getScriptInfo(fileName);
|
||||
assert(!!script);
|
||||
assert.isOk(script);
|
||||
|
||||
return ts.computeLineAndCharacterOfPosition(script.getLineMap(), position);
|
||||
}
|
||||
}
|
||||
@@ -378,7 +379,7 @@ namespace Harness.LanguageService {
|
||||
classification: parseInt(result[i + 1])
|
||||
};
|
||||
|
||||
assert(t.length > 0, "Result length should be greater than 0, got :" + t.length);
|
||||
assert.isTrue(t.length > 0, "Result length should be greater than 0, got :" + t.length);
|
||||
position += t.length;
|
||||
}
|
||||
const finalLexState = parseInt(result[result.length - 1]);
|
||||
|
||||
@@ -285,10 +285,10 @@ namespace Harness.SourceMapRecorder {
|
||||
}
|
||||
|
||||
export function recordNewSourceFileSpan(sourceMapSpan: ts.SourceMapSpan, newSourceFileCode: string) {
|
||||
assert(spansOnSingleLine.length === 0 || spansOnSingleLine[0].sourceMapSpan.emittedLine !== sourceMapSpan.emittedLine, "new file source map span should be on new line. We currently handle only that scenario");
|
||||
assert.isTrue(spansOnSingleLine.length === 0 || spansOnSingleLine[0].sourceMapSpan.emittedLine !== sourceMapSpan.emittedLine, "new file source map span should be on new line. We currently handle only that scenario");
|
||||
recordSourceMapSpan(sourceMapSpan);
|
||||
|
||||
assert(spansOnSingleLine.length === 1);
|
||||
assert.isTrue(spansOnSingleLine.length === 1);
|
||||
sourceMapRecorder.WriteLine("-------------------------------------------------------------------");
|
||||
sourceMapRecorder.WriteLine("emittedFile:" + jsFile.fileName);
|
||||
sourceMapRecorder.WriteLine("sourceFile:" + sourceMapSources[spansOnSingleLine[0].sourceMapSpan.sourceIndex]);
|
||||
@@ -331,7 +331,7 @@ namespace Harness.SourceMapRecorder {
|
||||
function getMarkerId(markerIndex: number) {
|
||||
let markerId = "";
|
||||
if (spanMarkerContinues) {
|
||||
assert(markerIndex === 0);
|
||||
assert.isTrue(markerIndex === 0);
|
||||
markerId = "1->";
|
||||
}
|
||||
else {
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"outFile": "../../built/local/run.js",
|
||||
"declaration": false,
|
||||
"types": [
|
||||
"node", "mocha"
|
||||
"node", "mocha", "chai"
|
||||
],
|
||||
"lib": [
|
||||
"es6",
|
||||
@@ -108,6 +108,7 @@
|
||||
"./unittests/reuseProgramStructure.ts",
|
||||
"./unittests/moduleResolution.ts",
|
||||
"./unittests/tsconfigParsing.ts",
|
||||
"./unittests/asserts.ts",
|
||||
"./unittests/builder.ts",
|
||||
"./unittests/commandLineParsing.ts",
|
||||
"./unittests/configurationExtension.ts",
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
/// <reference path="..\harness.ts" />
|
||||
|
||||
namespace ts {
|
||||
describe("assert", () => {
|
||||
it("deepEqual", () => {
|
||||
assert.throws(() => assert.deepEqual(createNodeArray([createIdentifier("A")]), createNodeArray([createIdentifier("B")])));
|
||||
assert.throws(() => assert.deepEqual(createNodeArray([], /*hasTrailingComma*/ true), createNodeArray([], /*hasTrailingComma*/ false)));
|
||||
assert.deepEqual(createNodeArray([createIdentifier("A")], /*hasTrailingComma*/ true), createNodeArray([createIdentifier("A")], /*hasTrailingComma*/ true));
|
||||
});
|
||||
});
|
||||
}
|
||||
@@ -12,7 +12,7 @@ namespace ts {
|
||||
|
||||
const parsedErrors = parsed.errors;
|
||||
const expectedErrors = expectedParsedCommandLine.errors;
|
||||
assert(parsedErrors.length === expectedErrors.length, `Expected error: ${JSON.stringify(expectedErrors)}. Actual error: ${JSON.stringify(parsedErrors)}.`);
|
||||
assert.isTrue(parsedErrors.length === expectedErrors.length, `Expected error: ${JSON.stringify(expectedErrors)}. Actual error: ${JSON.stringify(parsedErrors)}.`);
|
||||
for (let i = 0; i < parsedErrors.length; i++) {
|
||||
const parsedError = parsedErrors[i];
|
||||
const expectedError = expectedErrors[i];
|
||||
@@ -23,7 +23,7 @@ namespace ts {
|
||||
|
||||
const parsedFileNames = parsed.fileNames;
|
||||
const expectedFileNames = expectedParsedCommandLine.fileNames;
|
||||
assert(parsedFileNames.length === expectedFileNames.length, `Expected fileNames: [${JSON.stringify(expectedFileNames)}]. Actual fileNames: [${JSON.stringify(parsedFileNames)}].`);
|
||||
assert.isTrue(parsedFileNames.length === expectedFileNames.length, `Expected fileNames: [${JSON.stringify(expectedFileNames)}]. Actual fileNames: [${JSON.stringify(parsedFileNames)}].`);
|
||||
for (let i = 0; i < parsedFileNames.length; i++) {
|
||||
const parsedFileName = parsedFileNames[i];
|
||||
const expectedFileName = expectedFileNames[i];
|
||||
|
||||
@@ -25,7 +25,7 @@ namespace ts.projectSystem {
|
||||
|
||||
const actualResultSingleProjectFileNameList = actualResultSingleProject.fileNames.sort();
|
||||
const expectedResultSingleProjectFileNameList = map(expectedResultSingleProject.files, f => f.path).sort();
|
||||
assert(
|
||||
assert.isTrue(
|
||||
arrayIsEqualTo(actualResultSingleProjectFileNameList, expectedResultSingleProjectFileNameList),
|
||||
`For project ${actualResultSingleProject.projectFileName}, the actual result is ${actualResultSingleProjectFileNameList}, while expected ${expectedResultSingleProjectFileNameList}`);
|
||||
}
|
||||
@@ -563,7 +563,7 @@ namespace ts.projectSystem {
|
||||
session.executeCommand(compileFileRequest);
|
||||
|
||||
const expectedEmittedFileName = "/a/b/f1.js";
|
||||
assert(host.fileExists(expectedEmittedFileName));
|
||||
assert.isTrue(host.fileExists(expectedEmittedFileName));
|
||||
assert.equal(host.readFile(expectedEmittedFileName), `"use strict";\r\nexports.__esModule = true;\r\nfunction Foo() { return 10; }\r\nexports.Foo = Foo;\r\n`);
|
||||
});
|
||||
|
||||
@@ -600,11 +600,11 @@ namespace ts.projectSystem {
|
||||
session.executeCommand(emitRequest);
|
||||
|
||||
const expectedOutFileName = "/a/b/dist.js";
|
||||
assert(host.fileExists(expectedOutFileName));
|
||||
assert.isTrue(host.fileExists(expectedOutFileName));
|
||||
const outFileContent = host.readFile(expectedOutFileName);
|
||||
assert(outFileContent.indexOf(file1.content) !== -1);
|
||||
assert(outFileContent.indexOf(file2.content) === -1);
|
||||
assert(outFileContent.indexOf(file3.content) === -1);
|
||||
assert.isTrue(outFileContent.indexOf(file1.content) !== -1);
|
||||
assert.isTrue(outFileContent.indexOf(file2.content) === -1);
|
||||
assert.isTrue(outFileContent.indexOf(file3.content) === -1);
|
||||
});
|
||||
|
||||
it("should use project root as current directory so that compile on save results in correct file mapping", () => {
|
||||
@@ -634,19 +634,19 @@ namespace ts.projectSystem {
|
||||
|
||||
// Verify js file
|
||||
const expectedOutFileName = "/root/TypeScriptProject3/TypeScriptProject3/" + outFileName;
|
||||
assert(host.fileExists(expectedOutFileName));
|
||||
assert.isTrue(host.fileExists(expectedOutFileName));
|
||||
const outFileContent = host.readFile(expectedOutFileName);
|
||||
verifyContentHasString(outFileContent, file1.content);
|
||||
verifyContentHasString(outFileContent, `//# ${"sourceMappingURL"}=${outFileName}.map`); // Sometimes tools can sometimes see this line as a source mapping url comment, so we obfuscate it a little
|
||||
|
||||
// Verify map file
|
||||
const expectedMapFileName = expectedOutFileName + ".map";
|
||||
assert(host.fileExists(expectedMapFileName));
|
||||
assert.isTrue(host.fileExists(expectedMapFileName));
|
||||
const mapFileContent = host.readFile(expectedMapFileName);
|
||||
verifyContentHasString(mapFileContent, `"sources":["${inputFileName}"]`);
|
||||
|
||||
function verifyContentHasString(content: string, str: string) {
|
||||
assert(stringContains(content, str), `Expected "${content}" to have "${str}"`);
|
||||
assert.isTrue(stringContains(content, str), `Expected "${content}" to have "${str}"`);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
@@ -113,7 +113,7 @@ namespace ts {
|
||||
const caseSensitiveHost = new Utils.MockParseConfigHost(caseSensitiveBasePath, /*useCaseSensitiveFileNames*/ true, testContents);
|
||||
|
||||
function verifyDiagnostics(actual: Diagnostic[], expected: {code: number, category: DiagnosticCategory, messageText: string}[]) {
|
||||
assert(expected.length === actual.length, `Expected error: ${JSON.stringify(expected)}. Actual error: ${JSON.stringify(actual)}.`);
|
||||
assert.isTrue(expected.length === actual.length, `Expected error: ${JSON.stringify(expected)}. Actual error: ${JSON.stringify(actual)}.`);
|
||||
for (let i = 0; i < actual.length; i++) {
|
||||
const actualError = actual[i];
|
||||
const expectedError = expected[i];
|
||||
|
||||
@@ -16,7 +16,7 @@ namespace ts {
|
||||
assert.equal(parsedCompilerOptions, expectedCompilerOptions);
|
||||
|
||||
const expectedErrors = expectedResult.errors;
|
||||
assert(expectedResult.errors.length === actualErrors.length, `Expected error: ${JSON.stringify(expectedResult.errors)}. Actual error: ${JSON.stringify(actualErrors)}.`);
|
||||
assert.isTrue(expectedResult.errors.length === actualErrors.length, `Expected error: ${JSON.stringify(expectedResult.errors)}. Actual error: ${JSON.stringify(actualErrors)}.`);
|
||||
for (let i = 0; i < actualErrors.length; i++) {
|
||||
const actualError = actualErrors[i];
|
||||
const expectedError = expectedErrors[i];
|
||||
@@ -42,15 +42,15 @@ namespace ts {
|
||||
|
||||
const actualErrors = filter(actualParseErrors, error => error.code !== Diagnostics.No_inputs_were_found_in_config_file_0_Specified_include_paths_were_1_and_exclude_paths_were_2.code);
|
||||
const expectedErrors = expectedResult.errors;
|
||||
assert(expectedResult.errors.length === actualErrors.length, `Expected error: ${JSON.stringify(expectedResult.errors)}. Actual error: ${JSON.stringify(actualErrors)}.`);
|
||||
assert.isTrue(expectedResult.errors.length === actualErrors.length, `Expected error: ${JSON.stringify(expectedResult.errors)}. Actual error: ${JSON.stringify(actualErrors)}.`);
|
||||
for (let i = 0; i < actualErrors.length; i++) {
|
||||
const actualError = actualErrors[i];
|
||||
const expectedError = expectedErrors[i];
|
||||
assert.equal(actualError.code, expectedError.code, `Expected error-code: ${JSON.stringify(expectedError.code)}. Actual error-code: ${JSON.stringify(actualError.code)}.`);
|
||||
assert.equal(actualError.category, expectedError.category, `Expected error-category: ${JSON.stringify(expectedError.category)}. Actual error-category: ${JSON.stringify(actualError.category)}.`);
|
||||
assert.isDefined(actualError.file);
|
||||
assert(actualError.start > 0);
|
||||
assert(actualError.length > 0);
|
||||
assert(actualError.file);
|
||||
assert(actualError.start);
|
||||
assert(actualError.length);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -17,16 +17,16 @@ namespace ts {
|
||||
|
||||
function verifyErrors(actualErrors: Diagnostic[], expectedResult: ExpectedResult, hasLocation?: boolean) {
|
||||
const expectedErrors = expectedResult.errors;
|
||||
assert(expectedResult.errors.length === actualErrors.length, `Expected error: ${JSON.stringify(expectedResult.errors)}. Actual error: ${JSON.stringify(actualErrors)}.`);
|
||||
assert.isTrue(expectedResult.errors.length === actualErrors.length, `Expected error: ${JSON.stringify(expectedResult.errors)}. Actual error: ${JSON.stringify(actualErrors)}.`);
|
||||
for (let i = 0; i < actualErrors.length; i++) {
|
||||
const actualError = actualErrors[i];
|
||||
const expectedError = expectedErrors[i];
|
||||
assert.equal(actualError.code, expectedError.code, `Expected error-code: ${JSON.stringify(expectedError.code)}. Actual error-code: ${JSON.stringify(actualError.code)}.`);
|
||||
assert.equal(actualError.category, expectedError.category, `Expected error-category: ${JSON.stringify(expectedError.category)}. Actual error-category: ${JSON.stringify(actualError.category)}.`);
|
||||
if (hasLocation) {
|
||||
assert.isDefined(actualError.file);
|
||||
assert(actualError.start > 0);
|
||||
assert(actualError.length > 0);
|
||||
assert(actualError.file);
|
||||
assert(actualError.start);
|
||||
assert(actualError.length);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ namespace ts {
|
||||
assert.equal(end, expectedRange.end, "incorrect end of range");
|
||||
}
|
||||
else {
|
||||
assert(!result.targetRange, `expected range to extract to be undefined`);
|
||||
assert.isTrue(!result.targetRange, `expected range to extract to be undefined`);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -47,7 +47,7 @@ namespace ts {
|
||||
assert(!result.emitSkipped, "emit was skipped");
|
||||
assert(result.outputFiles.length === 1, "a number of files other than 1 was output");
|
||||
assert(result.outputFiles[0].name === "input.js", `Expected output file name input.js, but got ${result.outputFiles[0].name}`);
|
||||
assert.isDefined(result.outputFiles[0].text.match(options.newLine === NewLineKind.CarriageReturnLineFeed ? /\r\n/ : /[^\r]\n/), "expected to find appropriate newlines");
|
||||
assert(result.outputFiles[0].text.match(options.newLine === NewLineKind.CarriageReturnLineFeed ? /\r\n/ : /[^\r]\n/), "expected to find appropriate newlines");
|
||||
assert(!result.outputFiles[0].text.match(options.newLine === NewLineKind.CarriageReturnLineFeed ? /[^\r]\n/ : /\r\n/), "expected not to find inappropriate newlines");
|
||||
}
|
||||
|
||||
|
||||
@@ -66,7 +66,7 @@ namespace ts {
|
||||
assertSameDiagnostics(newTree, incrementalNewTree);
|
||||
|
||||
// There should be no reused nodes between two trees that are fully parsed.
|
||||
assert(reusedElements(oldTree, newTree) === 0);
|
||||
assert.isTrue(reusedElements(oldTree, newTree) === 0);
|
||||
|
||||
assert.equal(newTree.fileName, incrementalNewTree.fileName, "newTree.fileName !== incrementalNewTree.fileName");
|
||||
assert.equal(newTree.text, incrementalNewTree.text, "newTree.text !== incrementalNewTree.text");
|
||||
|
||||
@@ -7,7 +7,7 @@ namespace ts {
|
||||
function parsesCorrectly(name: string, content: string) {
|
||||
it(name, () => {
|
||||
const typeAndDiagnostics = ts.parseJSDocTypeExpressionForTests(content);
|
||||
assert(typeAndDiagnostics && typeAndDiagnostics.diagnostics.length === 0, "no errors issued");
|
||||
assert.isTrue(typeAndDiagnostics && typeAndDiagnostics.diagnostics.length === 0, "no errors issued");
|
||||
|
||||
Harness.Baseline.runBaseline("JSDocParsing/TypeExpressions.parsesCorrectly." + name + ".json",
|
||||
() => Utils.sourceFileToJSON(typeAndDiagnostics.jsDocTypeExpression.type));
|
||||
@@ -17,7 +17,7 @@ namespace ts {
|
||||
function parsesIncorrectly(name: string, content: string) {
|
||||
it(name, () => {
|
||||
const type = ts.parseJSDocTypeExpressionForTests(content);
|
||||
assert(!type || type.diagnostics.length > 0);
|
||||
assert.isTrue(!type || type.diagnostics.length > 0);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -106,7 +106,7 @@ namespace ts {
|
||||
function parsesIncorrectly(name: string, content: string) {
|
||||
it(name, () => {
|
||||
const type = parseIsolatedJSDocComment(content);
|
||||
assert(!type || type.diagnostics.length > 0);
|
||||
assert.isTrue(!type || type.diagnostics.length > 0);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ export function Component(x: Config): any;`
|
||||
},
|
||||
});
|
||||
const definitions = languageService.getDefinitionAtPosition("foo.ts", 160); // 160 is the latter `vueTemplateHtml` position
|
||||
assert.isDefined(definitions);
|
||||
expect(definitions).to.exist; // tslint:disable-line no-unused-expression
|
||||
});
|
||||
});
|
||||
}
|
||||
@@ -4,9 +4,9 @@ namespace ts {
|
||||
export function checkResolvedModule(expected: ResolvedModuleFull, actual: ResolvedModuleFull): boolean {
|
||||
if (!expected === !actual) {
|
||||
if (expected) {
|
||||
assert(expected.resolvedFileName === actual.resolvedFileName, `'resolvedFileName': expected '${expected.resolvedFileName}' to be equal to '${actual.resolvedFileName}'`);
|
||||
assert(expected.extension === actual.extension, `'ext': expected '${expected.extension}' to be equal to '${actual.extension}'`);
|
||||
assert(expected.isExternalLibraryImport === actual.isExternalLibraryImport, `'isExternalLibraryImport': expected '${expected.isExternalLibraryImport}' to be equal to '${actual.isExternalLibraryImport}'`);
|
||||
assert.isTrue(expected.resolvedFileName === actual.resolvedFileName, `'resolvedFileName': expected '${expected.resolvedFileName}' to be equal to '${actual.resolvedFileName}'`);
|
||||
assert.isTrue(expected.extension === actual.extension, `'ext': expected '${expected.extension}' to be equal to '${actual.extension}'`);
|
||||
assert.isTrue(expected.isExternalLibraryImport === actual.isExternalLibraryImport, `'isExternalLibraryImport': expected '${expected.isExternalLibraryImport}' to be equal to '${actual.isExternalLibraryImport}'`);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -14,7 +14,7 @@ namespace ts {
|
||||
}
|
||||
|
||||
export function checkResolvedModuleWithFailedLookupLocations(actual: ResolvedModuleWithFailedLookupLocations, expectedResolvedModule: ResolvedModuleFull, expectedFailedLookupLocations: string[]): void {
|
||||
assert(actual.resolvedModule !== undefined, "module should be resolved");
|
||||
assert.isTrue(actual.resolvedModule !== undefined, "module should be resolved");
|
||||
checkResolvedModule(actual.resolvedModule, expectedResolvedModule);
|
||||
assert.deepEqual(actual.failedLookupLocations, expectedFailedLookupLocations);
|
||||
}
|
||||
@@ -58,7 +58,7 @@ namespace ts {
|
||||
realpath,
|
||||
directoryExists: path => directories.has(path),
|
||||
fileExists: path => {
|
||||
assert(directories.has(getDirectoryPath(path)), `'fileExists' '${path}' request in non-existing directory`);
|
||||
assert.isTrue(directories.has(getDirectoryPath(path)), `'fileExists' '${path}' request in non-existing directory`);
|
||||
return map.has(path);
|
||||
}
|
||||
};
|
||||
@@ -351,7 +351,7 @@ namespace ts {
|
||||
|
||||
// try to get file using a relative name
|
||||
for (const relativeFileName of relativeNamesToCheck) {
|
||||
assert(program.getSourceFile(relativeFileName) !== undefined, `expected to get file by relative name, got undefined`);
|
||||
assert.isTrue(program.getSourceFile(relativeFileName) !== undefined, `expected to get file by relative name, got undefined`);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1074,7 +1074,7 @@ import b = require("./moduleB");
|
||||
assert.equal(diagnostics1.length, 1, "expected one diagnostic");
|
||||
|
||||
createProgram(names, {}, compilerHost, program1);
|
||||
assert(program1.structureIsReused === StructureIsReused.Completely);
|
||||
assert.isTrue(program1.structureIsReused === StructureIsReused.Completely);
|
||||
const diagnostics2 = program1.getFileProcessingDiagnostics().getDiagnostics();
|
||||
assert.equal(diagnostics2.length, 1, "expected one diagnostic");
|
||||
assert.equal(diagnostics1[0].messageText, diagnostics2[0].messageText, "expected one diagnostic");
|
||||
|
||||
@@ -6,7 +6,7 @@ namespace ts {
|
||||
const map = arrayToSet(expected) as Map<boolean>;
|
||||
for (const missing of missingPaths) {
|
||||
const value = map.get(missing);
|
||||
assert(value, `${missing} to be ${value === undefined ? "not present" : "present only once"}, in actual: ${missingPaths} expected: ${expected}`);
|
||||
assert.isTrue(value, `${missing} to be ${value === undefined ? "not present" : "present only once"}, in actual: ${missingPaths} expected: ${expected}`);
|
||||
map.set(missing, false);
|
||||
}
|
||||
const notFound = arrayFrom(mapDefinedIterator(map.keys(), k => map.get(k) === true ? k : undefined));
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
namespace ts.projectSystem {
|
||||
describe("Project errors", () => {
|
||||
function checkProjectErrors(projectFiles: server.ProjectFilesWithTSDiagnostics, expectedErrors: ReadonlyArray<string>): void {
|
||||
assert(projectFiles !== undefined, "missing project files");
|
||||
assert.isTrue(projectFiles !== undefined, "missing project files");
|
||||
checkProjectErrorsWorker(projectFiles.projectErrors, expectedErrors);
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ namespace ts.projectSystem {
|
||||
for (let i = 0; i < errors.length; i++) {
|
||||
const actualMessage = flattenDiagnosticMessageText(errors[i].messageText, "\n");
|
||||
const expectedMessage = expectedErrors[i];
|
||||
assert(actualMessage.indexOf(expectedMessage) === 0, `error message does not match, expected ${actualMessage} to start with ${expectedMessage}`);
|
||||
assert.isTrue(actualMessage.indexOf(expectedMessage) === 0, `error message does not match, expected ${actualMessage} to start with ${expectedMessage}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -24,7 +24,7 @@ namespace ts.projectSystem {
|
||||
assert.equal(errors ? errors.length : 0, expectedErrors.length, `expected ${expectedErrors.length} error in the list`);
|
||||
if (expectedErrors.length) {
|
||||
zipWith(errors, expectedErrors, ({ message: actualMessage }, expectedMessage) => {
|
||||
assert(startsWith(actualMessage, actualMessage), `error message does not match, expected ${actualMessage} to start with ${expectedMessage}`);
|
||||
assert.isTrue(startsWith(actualMessage, actualMessage), `error message does not match, expected ${actualMessage} to start with ${expectedMessage}`);
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -137,13 +137,13 @@ namespace ts.projectSystem {
|
||||
{
|
||||
projectService.checkNumberOfProjects({ configuredProjects: 1 });
|
||||
const configuredProject = forEach(projectService.synchronizeProjectList([]), f => f.info.projectName === corruptedConfig.path && f);
|
||||
assert(configuredProject !== undefined, "should find configured project");
|
||||
assert.isTrue(configuredProject !== undefined, "should find configured project");
|
||||
checkProjectErrors(configuredProject, []);
|
||||
const projectErrors = configuredProjectAt(projectService, 0).getAllProjectErrors();
|
||||
checkProjectErrorsWorker(projectErrors, [
|
||||
"'{' expected."
|
||||
]);
|
||||
assert.isDefined(projectErrors[0].file);
|
||||
assert.isNotNull(projectErrors[0].file);
|
||||
assert.equal(projectErrors[0].file.fileName, corruptedConfig.path);
|
||||
}
|
||||
// fix config and trigger watcher
|
||||
@@ -151,7 +151,7 @@ namespace ts.projectSystem {
|
||||
{
|
||||
projectService.checkNumberOfProjects({ configuredProjects: 1 });
|
||||
const configuredProject = forEach(projectService.synchronizeProjectList([]), f => f.info.projectName === corruptedConfig.path && f);
|
||||
assert(configuredProject !== undefined, "should find configured project");
|
||||
assert.isTrue(configuredProject !== undefined, "should find configured project");
|
||||
checkProjectErrors(configuredProject, []);
|
||||
const projectErrors = configuredProjectAt(projectService, 0).getAllProjectErrors();
|
||||
checkProjectErrorsWorker(projectErrors, []);
|
||||
@@ -182,7 +182,7 @@ namespace ts.projectSystem {
|
||||
{
|
||||
projectService.checkNumberOfProjects({ configuredProjects: 1 });
|
||||
const configuredProject = forEach(projectService.synchronizeProjectList([]), f => f.info.projectName === corruptedConfig.path && f);
|
||||
assert(configuredProject !== undefined, "should find configured project");
|
||||
assert.isTrue(configuredProject !== undefined, "should find configured project");
|
||||
checkProjectErrors(configuredProject, []);
|
||||
const projectErrors = configuredProjectAt(projectService, 0).getAllProjectErrors();
|
||||
checkProjectErrorsWorker(projectErrors, []);
|
||||
@@ -192,13 +192,13 @@ namespace ts.projectSystem {
|
||||
{
|
||||
projectService.checkNumberOfProjects({ configuredProjects: 1 });
|
||||
const configuredProject = forEach(projectService.synchronizeProjectList([]), f => f.info.projectName === corruptedConfig.path && f);
|
||||
assert(configuredProject !== undefined, "should find configured project");
|
||||
assert.isTrue(configuredProject !== undefined, "should find configured project");
|
||||
checkProjectErrors(configuredProject, []);
|
||||
const projectErrors = configuredProjectAt(projectService, 0).getAllProjectErrors();
|
||||
checkProjectErrorsWorker(projectErrors, [
|
||||
"'{' expected."
|
||||
]);
|
||||
assert.isDefined(projectErrors[0].file);
|
||||
assert.isNotNull(projectErrors[0].file);
|
||||
assert.equal(projectErrors[0].file.fileName, corruptedConfig.path);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -193,14 +193,14 @@ namespace ts {
|
||||
|
||||
function checkCache<T>(caption: string, program: Program, fileName: string, expectedContent: Map<T>, getCache: (f: SourceFile) => Map<T>, entryChecker: (expected: T, original: T) => boolean): void {
|
||||
const file = program.getSourceFile(fileName);
|
||||
assert(file !== undefined, `cannot find file ${fileName}`);
|
||||
assert.isTrue(file !== undefined, `cannot find file ${fileName}`);
|
||||
const cache = getCache(file);
|
||||
if (expectedContent === undefined) {
|
||||
assert(cache === undefined, `expected ${caption} to be undefined`);
|
||||
assert.isTrue(cache === undefined, `expected ${caption} to be undefined`);
|
||||
}
|
||||
else {
|
||||
assert(cache !== undefined, `expected ${caption} to be set`);
|
||||
assert(mapsAreEqual(expectedContent, cache, entryChecker), `contents of ${caption} did not match the expected contents.`);
|
||||
assert.isTrue(cache !== undefined, `expected ${caption} to be set`);
|
||||
assert.isTrue(mapsAreEqual(expectedContent, cache, entryChecker), `contents of ${caption} did not match the expected contents.`);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -329,7 +329,7 @@ namespace ts {
|
||||
const options: CompilerOptions = { target, noLib: true };
|
||||
|
||||
const program1 = newProgram(files, ["a.ts"], options);
|
||||
assert(program1.getMissingFilePaths().length !== 0);
|
||||
assert.notDeepEqual(emptyArray, program1.getMissingFilePaths());
|
||||
|
||||
const program2 = updateProgram(program1, ["a.ts"], options, noop);
|
||||
assert.deepEqual(program1.getMissingFilePaths(), program2.getMissingFilePaths());
|
||||
@@ -341,7 +341,7 @@ namespace ts {
|
||||
const options: CompilerOptions = { target, noLib: true };
|
||||
|
||||
const program1 = newProgram(files, ["a.ts"], options);
|
||||
assert(program1.getMissingFilePaths().length !== 0);
|
||||
assert.notDeepEqual(emptyArray, program1.getMissingFilePaths());
|
||||
|
||||
const newTexts: NamedSourceText[] = files.concat([{ name: "non-existing-file.ts", text: SourceText.New("", "", `var x = 1`) }]);
|
||||
const program2 = updateProgram(program1, ["a.ts"], options, noop, newTexts);
|
||||
@@ -873,7 +873,7 @@ namespace ts {
|
||||
updateProgramText(files, bxPackage, JSON.stringify({ name: "x", version: "1.2.3" }));
|
||||
});
|
||||
assert.equal(program1.structureIsReused, StructureIsReused.Not);
|
||||
assert.lengthOf(program2.getSemanticDiagnostics(), 0);
|
||||
assert.deepEqual(program2.getSemanticDiagnostics(), []);
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -901,7 +901,7 @@ namespace ts {
|
||||
/*hasInvalidatedResolution*/ returnFalse,
|
||||
/*hasChangedAutomaticTypeDirectiveNames*/ false
|
||||
);
|
||||
assert(actual);
|
||||
assert.isTrue(actual);
|
||||
}
|
||||
|
||||
function duplicate(options: CompilerOptions): CompilerOptions;
|
||||
|
||||
@@ -50,7 +50,7 @@ describe("Colorization", () => {
|
||||
|
||||
const actualEntry = getEntryAtPosition(result, actualEntryPosition);
|
||||
|
||||
assert.isDefined(actualEntry, "Could not find classification entry for '" + expectedEntry.value + "' at position: " + actualEntryPosition);
|
||||
assert(actualEntry, "Could not find classification entry for '" + expectedEntry.value + "' at position: " + actualEntryPosition);
|
||||
assert.equal(actualEntry.classification, expectedEntry.classification, "Classification class does not match expected. Expected: " + ts.TokenClass[expectedEntry.classification] + ", Actual: " + ts.TokenClass[actualEntry.classification]);
|
||||
assert.equal(actualEntry.length, expectedEntry.value.length, "Classification length does not match expected. Expected: " + ts.TokenClass[expectedEntry.value.length] + ", Actual: " + ts.TokenClass[actualEntry.length]);
|
||||
}
|
||||
|
||||
@@ -140,25 +140,25 @@ describe("PatternMatcher", () => {
|
||||
it("PreferCaseSensitiveCamelCaseMatchToLongPattern1", () => {
|
||||
const match = getFirstMatch("FogBar", "FBB");
|
||||
|
||||
assert(match === undefined);
|
||||
assert.isTrue(match === undefined);
|
||||
});
|
||||
|
||||
it("PreferCaseSensitiveCamelCaseMatchToLongPattern2", () => {
|
||||
const match = getFirstMatch("FogBar", "FoooB");
|
||||
|
||||
assert(match === undefined);
|
||||
assert.isTrue(match === undefined);
|
||||
});
|
||||
|
||||
it("CamelCaseMatchPartiallyUnmatched", () => {
|
||||
const match = getFirstMatch("FogBarBaz", "FZ");
|
||||
|
||||
assert(match === undefined);
|
||||
assert.isTrue(match === undefined);
|
||||
});
|
||||
|
||||
it("CamelCaseMatchCompletelyUnmatched", () => {
|
||||
const match = getFirstMatch("FogBarBaz", "ZZ");
|
||||
|
||||
assert(match === undefined);
|
||||
assert.isTrue(match === undefined);
|
||||
});
|
||||
|
||||
it("TwoUppercaseCharacters", () => {
|
||||
@@ -220,7 +220,7 @@ describe("PatternMatcher", () => {
|
||||
it("PreferCaseSensitiveMiddleUnderscore3", () => {
|
||||
const match = getFirstMatch("Fog_Bar", "F__B");
|
||||
|
||||
assert(undefined === match);
|
||||
assert.isTrue(undefined === match);
|
||||
});
|
||||
|
||||
it("PreferCaseSensitiveMiddleUnderscore4", () => {
|
||||
@@ -264,25 +264,25 @@ describe("PatternMatcher", () => {
|
||||
it("AllLowerPattern1", () => {
|
||||
const match = getFirstMatch("FogBarChangedEventArgs", "changedeventargs");
|
||||
|
||||
assert(undefined !== match);
|
||||
assert.isTrue(undefined !== match);
|
||||
});
|
||||
|
||||
it("AllLowerPattern2", () => {
|
||||
const match = getFirstMatch("FogBarChangedEventArgs", "changedeventarrrgh");
|
||||
|
||||
assert(undefined === match);
|
||||
assert.isTrue(undefined === match);
|
||||
});
|
||||
|
||||
it("AllLowerPattern3", () => {
|
||||
const match = getFirstMatch("ABCDEFGH", "bcd");
|
||||
|
||||
assert(undefined !== match);
|
||||
assert.isTrue(undefined !== match);
|
||||
});
|
||||
|
||||
it("AllLowerPattern4", () => {
|
||||
const match = getFirstMatch("AbcdefghijEfgHij", "efghij");
|
||||
|
||||
assert(undefined === match);
|
||||
assert.isTrue(undefined === match);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -370,13 +370,13 @@ describe("PatternMatcher", () => {
|
||||
it("BlankPattern", () => {
|
||||
const matches = getAllMatches("AddMetadataReference", "");
|
||||
|
||||
assert(matches === undefined);
|
||||
assert.isTrue(matches === undefined);
|
||||
});
|
||||
|
||||
it("WhitespaceOnlyPattern", () => {
|
||||
const matches = getAllMatches("AddMetadataReference", " ");
|
||||
|
||||
assert(matches === undefined);
|
||||
assert.isTrue(matches === undefined);
|
||||
});
|
||||
|
||||
it("EachWordSeparately1", () => {
|
||||
@@ -403,13 +403,13 @@ describe("PatternMatcher", () => {
|
||||
it("MixedCasing", () => {
|
||||
const matches = getAllMatches("AddMetadataReference", "mEta");
|
||||
|
||||
assert(matches === undefined);
|
||||
assert.isTrue(matches === undefined);
|
||||
});
|
||||
|
||||
it("MixedCasing2", () => {
|
||||
const matches = getAllMatches("AddMetadataReference", "Data");
|
||||
|
||||
assert(matches === undefined);
|
||||
assert.isTrue(matches === undefined);
|
||||
});
|
||||
|
||||
it("AsteriskSplit", () => {
|
||||
@@ -421,7 +421,7 @@ describe("PatternMatcher", () => {
|
||||
it("LowercaseSubstring1", () => {
|
||||
const matches = getAllMatches("Operator", "a");
|
||||
|
||||
assert(matches === undefined);
|
||||
assert.isTrue(matches === undefined);
|
||||
});
|
||||
|
||||
it("LowercaseSubstring2", () => {
|
||||
@@ -441,7 +441,7 @@ describe("PatternMatcher", () => {
|
||||
|
||||
it("DottedPattern2", () => {
|
||||
const match = getFirstMatchForDottedPattern("Foo.Bar.Baz", "Quux", "C.Q");
|
||||
assert(match === undefined);
|
||||
assert.isTrue(match === undefined);
|
||||
});
|
||||
|
||||
it("DottedPattern3", () => {
|
||||
@@ -464,13 +464,13 @@ describe("PatternMatcher", () => {
|
||||
|
||||
it("DottedPattern6", () => {
|
||||
const match = getFirstMatchForDottedPattern("Foo.Bar.Baz", "Quux", "F.F.B.B.Quux");
|
||||
assert(match === undefined);
|
||||
assert.isTrue(match === undefined);
|
||||
});
|
||||
|
||||
it("DottedPattern7", () => {
|
||||
let match = getFirstMatch("UIElement", "UIElement");
|
||||
match = getFirstMatch("GetKeyword", "UIElement");
|
||||
assert(match === undefined);
|
||||
assert.isTrue(match === undefined);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -508,8 +508,8 @@ describe("PatternMatcher", () => {
|
||||
}
|
||||
|
||||
function assertInRange(val: number, low: number, high: number) {
|
||||
assert(val >= low);
|
||||
assert(val <= high);
|
||||
assert.isTrue(val >= low);
|
||||
assert.isTrue(val <= high);
|
||||
}
|
||||
|
||||
function verifyBreakIntoCharacterSpans(original: string, ...parts: string[]): void {
|
||||
@@ -521,6 +521,6 @@ describe("PatternMatcher", () => {
|
||||
}
|
||||
|
||||
function assertContainsKind(kind: ts.PatternMatchKind, results: ts.PatternMatch[]) {
|
||||
assert(ts.forEach(results, r => r.kind === kind));
|
||||
assert.isTrue(ts.forEach(results, r => r.kind === kind));
|
||||
}
|
||||
});
|
||||
|
||||
@@ -18,7 +18,7 @@ describe("PreProcessFile:", () => {
|
||||
return;
|
||||
}
|
||||
if (!expected) {
|
||||
assert(false, `Expected ${JSON.stringify(expected)}, got ${JSON.stringify(actual)}`);
|
||||
assert.isTrue(false, `Expected ${JSON.stringify(expected)}, got ${JSON.stringify(actual)}`);
|
||||
}
|
||||
assert.equal(actual.length, expected.length, `[${kind}] Actual array's length does not match expected length. Expected files: ${JSON.stringify(expected)}, actual files: ${JSON.stringify(actual)}`);
|
||||
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
/// <reference path="..\harness.ts" />
|
||||
|
||||
const expect: typeof _chai.expect = _chai.expect;
|
||||
|
||||
namespace ts.server {
|
||||
let lastWrittenToHost: string;
|
||||
const mockHost: ServerHost = {
|
||||
@@ -80,7 +82,7 @@ namespace ts.server {
|
||||
}
|
||||
};
|
||||
|
||||
assert.throws(() => session.executeCommand(req));
|
||||
expect(() => session.executeCommand(req)).to.throw();
|
||||
});
|
||||
it("should output an error response when a command does not exist", () => {
|
||||
const req: protocol.Request = {
|
||||
@@ -99,7 +101,7 @@ namespace ts.server {
|
||||
request_seq: 0,
|
||||
success: false
|
||||
};
|
||||
assert.deepEqual(lastSent, expected);
|
||||
expect(lastSent).to.deep.equal(expected);
|
||||
});
|
||||
it("should return a tuple containing the response and if a response is required on success", () => {
|
||||
const req: protocol.ConfigureRequest = {
|
||||
@@ -114,18 +116,17 @@ namespace ts.server {
|
||||
}
|
||||
};
|
||||
|
||||
assert.deepEqual(session.executeCommand(req), {
|
||||
expect(session.executeCommand(req)).to.deep.equal({
|
||||
responseRequired: false
|
||||
});
|
||||
const expected: protocol.Response = {
|
||||
expect(lastSent).to.deep.equal({
|
||||
command: CommandNames.Configure,
|
||||
type: "response",
|
||||
success: true,
|
||||
request_seq: 0,
|
||||
seq: 0,
|
||||
body: undefined
|
||||
};
|
||||
assert.deepEqual(lastSent, expected);
|
||||
});
|
||||
});
|
||||
it("should handle literal types in request", () => {
|
||||
const configureRequest: protocol.ConfigureRequest = {
|
||||
@@ -310,15 +311,14 @@ namespace ts.server {
|
||||
|
||||
session.onMessage(JSON.stringify(req));
|
||||
|
||||
const expected: protocol.ConfigureResponse = {
|
||||
expect(lastSent).to.deep.equal(<protocol.ConfigureResponse>{
|
||||
command: CommandNames.Configure,
|
||||
type: "response",
|
||||
success: true,
|
||||
request_seq: 0,
|
||||
seq: 0,
|
||||
body: undefined
|
||||
};
|
||||
assert.deepEqual(lastSent, expected);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -330,9 +330,9 @@ namespace ts.server {
|
||||
const resultMsg = `Content-Length: ${len}\r\n\r\n${strmsg}\n`;
|
||||
|
||||
session.send = Session.prototype.send;
|
||||
assert.isDefined(session.send);
|
||||
session.send(msg);
|
||||
assert.equal(lastWrittenToHost, resultMsg);
|
||||
assert(session.send);
|
||||
expect(session.send(msg)).to.not.exist; // tslint:disable-line no-unused-expression
|
||||
expect(lastWrittenToHost).to.equal(resultMsg);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -349,7 +349,11 @@ namespace ts.server {
|
||||
|
||||
session.addProtocolHandler(command, () => result);
|
||||
|
||||
assert.deepEqual(session.executeCommand({ command, seq: 0, type: "request" }), result);
|
||||
expect(session.executeCommand({
|
||||
command,
|
||||
seq: 0,
|
||||
type: "request"
|
||||
})).to.deep.equal(result);
|
||||
});
|
||||
it("throws when a duplicate handler is passed", () => {
|
||||
const respBody = {
|
||||
@@ -363,7 +367,8 @@ namespace ts.server {
|
||||
|
||||
session.addProtocolHandler(command, () => resp);
|
||||
|
||||
assert.throws(() => session.addProtocolHandler(command, () => resp), `Protocol handler already exists for command "${command}"`);
|
||||
expect(() => session.addProtocolHandler(command, () => resp))
|
||||
.to.throw(`Protocol handler already exists for command "${command}"`);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -376,13 +381,12 @@ namespace ts.server {
|
||||
|
||||
session.event(info, evt);
|
||||
|
||||
const expected: protocol.Event = {
|
||||
expect(lastSent).to.deep.equal({
|
||||
type: "event",
|
||||
seq: 0,
|
||||
event: evt,
|
||||
body: info
|
||||
};
|
||||
assert.deepEqual(lastSent, expected);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -397,15 +401,14 @@ namespace ts.server {
|
||||
|
||||
session.output(body, command, /*reqSeq*/ 0);
|
||||
|
||||
const expected: protocol.Response = {
|
||||
expect(lastSent).to.deep.equal({
|
||||
seq: 0,
|
||||
request_seq: 0,
|
||||
type: "response",
|
||||
command,
|
||||
body,
|
||||
success: true
|
||||
};
|
||||
assert.deepEqual(lastSent, expected);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -466,16 +469,14 @@ namespace ts.server {
|
||||
session.onMessage(JSON.stringify(request));
|
||||
const lastSent = session.lastSent as protocol.Response;
|
||||
|
||||
assert.deepEqual({ ...lastSent, message: undefined }, {
|
||||
request_seq: 0,
|
||||
expect(lastSent).to.contain({
|
||||
seq: 0,
|
||||
type: "response",
|
||||
command,
|
||||
success: false,
|
||||
message: undefined,
|
||||
success: false
|
||||
});
|
||||
|
||||
assert(ts.stringContains(lastSent.message, "myMessage") && ts.stringContains(lastSent.message, "f1"));
|
||||
expect(lastSent.message).has.string("myMessage").and.has.string("f1");
|
||||
});
|
||||
});
|
||||
|
||||
@@ -515,24 +516,23 @@ namespace ts.server {
|
||||
|
||||
session.output(body, command, /*reqSeq*/ 0);
|
||||
|
||||
const expected: protocol.Response = {
|
||||
expect(session.lastSent).to.deep.equal({
|
||||
seq: 0,
|
||||
request_seq: 0,
|
||||
type: "response",
|
||||
command,
|
||||
body,
|
||||
success: true
|
||||
};
|
||||
assert.deepEqual(session.lastSent, expected);
|
||||
});
|
||||
});
|
||||
it("can add and respond to new protocol handlers", () => {
|
||||
const session = new TestSession();
|
||||
|
||||
assert.deepEqual(session.executeCommand({
|
||||
expect(session.executeCommand({
|
||||
seq: 0,
|
||||
type: "request",
|
||||
command: session.customHandler
|
||||
}), {
|
||||
})).to.deep.equal({
|
||||
response: undefined,
|
||||
responseRequired: true
|
||||
});
|
||||
@@ -542,7 +542,8 @@ namespace ts.server {
|
||||
new class extends TestSession {
|
||||
constructor() {
|
||||
super();
|
||||
assert(this.projectService instanceof ProjectService);
|
||||
assert(this.projectService);
|
||||
expect(this.projectService).to.be.instanceOf(ProjectService);
|
||||
}
|
||||
}();
|
||||
});
|
||||
@@ -666,9 +667,9 @@ namespace ts.server {
|
||||
|
||||
// Add an event handler
|
||||
cli.on("testevent", (eventinfo) => {
|
||||
assert.equal(eventinfo, toEvent);
|
||||
expect(eventinfo).to.equal(toEvent);
|
||||
responses++;
|
||||
assert.equal(responses, 1);
|
||||
expect(responses).to.equal(1);
|
||||
});
|
||||
|
||||
// Trigger said event from the server
|
||||
@@ -678,8 +679,8 @@ namespace ts.server {
|
||||
cli.execute("echo", toEcho, (resp) => {
|
||||
assert(resp.success, resp.message);
|
||||
responses++;
|
||||
assert.equal(responses, 2);
|
||||
assert.deepEqual(resp.body, toEcho);
|
||||
expect(responses).to.equal(2);
|
||||
expect(resp.body).to.deep.equal(toEcho);
|
||||
});
|
||||
|
||||
// Queue a configure command
|
||||
@@ -691,7 +692,7 @@ namespace ts.server {
|
||||
}, (resp) => {
|
||||
assert(resp.success, resp.message);
|
||||
responses++;
|
||||
assert.equal(responses, 3);
|
||||
expect(responses).to.equal(3);
|
||||
done();
|
||||
});
|
||||
|
||||
|
||||
@@ -103,7 +103,7 @@ namespace M
|
||||
/*body */ createBlock(statements)
|
||||
);
|
||||
|
||||
changeTracker.insertNodeBefore(sourceFile, /*before*/findChild("M2", sourceFile), newFunction, { suffix: newLineCharacter });
|
||||
changeTracker.insertNodeBefore(sourceFile, /*before*/findChild("M2", sourceFile), newFunction);
|
||||
|
||||
// replace statements with return statement
|
||||
const newStatement = createReturn(
|
||||
@@ -129,12 +129,11 @@ function bar() {
|
||||
changeTracker.deleteRange(sourceFile, { pos: text.indexOf("function foo"), end: text.indexOf("function bar") });
|
||||
});
|
||||
}
|
||||
function findVariableStatementContaining(name: string, sourceFile: SourceFile) {
|
||||
const varDecl = findChild(name, sourceFile);
|
||||
assert.equal(varDecl.kind, SyntaxKind.VariableDeclaration);
|
||||
const varStatement = varDecl.parent.parent;
|
||||
assert.equal(varStatement.kind, SyntaxKind.VariableStatement);
|
||||
return varStatement;
|
||||
function findVariableStatementContaining(name: string, sourceFile: SourceFile): VariableStatement {
|
||||
return cast(findVariableDeclarationContaining(name, sourceFile).parent.parent, isVariableStatement);
|
||||
}
|
||||
function findVariableDeclarationContaining(name: string, sourceFile: SourceFile): VariableDeclaration {
|
||||
return cast(findChild(name, sourceFile), isVariableDeclaration);
|
||||
}
|
||||
{
|
||||
const text = `
|
||||
@@ -306,11 +305,11 @@ var y; // comment 4
|
||||
var z = 3; // comment 5
|
||||
// comment 6
|
||||
var a = 4; // comment 7`;
|
||||
runSingleFileTest("insertNodeAt1", /*placeOpenBraceOnNewLineForFunctions*/ true, text, /*validateNodes*/ true, (sourceFile, changeTracker) => {
|
||||
changeTracker.insertNodeAt(sourceFile, text.indexOf("var y"), createTestClass(), { suffix: newLineCharacter });
|
||||
runSingleFileTest("insertNodeBefore3", /*placeOpenBraceOnNewLineForFunctions*/ true, text, /*validateNodes*/ true, (sourceFile, changeTracker) => {
|
||||
changeTracker.insertNodeBefore(sourceFile, findVariableStatementContaining("y", sourceFile), createTestClass());
|
||||
});
|
||||
runSingleFileTest("insertNodeAt2", /*placeOpenBraceOnNewLineForFunctions*/ true, text, /*validateNodes*/ false, (sourceFile, changeTracker) => {
|
||||
changeTracker.insertNodeAt(sourceFile, text.indexOf("; // comment 4"), createTestVariableDeclaration("z1"));
|
||||
runSingleFileTest("insertNodeAfterVariableDeclaration", /*placeOpenBraceOnNewLineForFunctions*/ true, text, /*validateNodes*/ false, (sourceFile, changeTracker) => {
|
||||
changeTracker.insertNodeAfter(sourceFile, findVariableDeclarationContaining("y", sourceFile), createTestVariableDeclaration("z1"));
|
||||
});
|
||||
}
|
||||
{
|
||||
@@ -325,23 +324,22 @@ namespace M {
|
||||
var a = 4; // comment 7
|
||||
}`;
|
||||
runSingleFileTest("insertNodeBefore1", /*placeOpenBraceOnNewLineForFunctions*/ true, text, /*validateNodes*/ true, (sourceFile, changeTracker) => {
|
||||
changeTracker.insertNodeBefore(sourceFile, findVariableStatementContaining("y", sourceFile), createTestClass(), { suffix: newLineCharacter });
|
||||
changeTracker.insertNodeBefore(sourceFile, findVariableStatementContaining("y", sourceFile), createTestClass());
|
||||
});
|
||||
runSingleFileTest("insertNodeBefore2", /*placeOpenBraceOnNewLineForFunctions*/ true, text, /*validateNodes*/ true, (sourceFile, changeTracker) => {
|
||||
changeTracker.insertNodeBefore(sourceFile, findChild("M", sourceFile), createTestClass(), { suffix: newLineCharacter });
|
||||
changeTracker.insertNodeBefore(sourceFile, findChild("M", sourceFile), createTestClass());
|
||||
});
|
||||
runSingleFileTest("insertNodeAfter1", /*placeOpenBraceOnNewLineForFunctions*/ true, text, /*validateNodes*/ true, (sourceFile, changeTracker) => {
|
||||
changeTracker.insertNodeAfter(sourceFile, findVariableStatementContaining("y", sourceFile), createTestClass(), { suffix: newLineCharacter });
|
||||
changeTracker.insertNodeAfter(sourceFile, findVariableStatementContaining("y", sourceFile), createTestClass());
|
||||
});
|
||||
runSingleFileTest("insertNodeAfter2", /*placeOpenBraceOnNewLineForFunctions*/ true, text, /*validateNodes*/ true, (sourceFile, changeTracker) => {
|
||||
changeTracker.insertNodeAfter(sourceFile, findChild("M", sourceFile), createTestClass(), { prefix: newLineCharacter });
|
||||
changeTracker.insertNodeAfter(sourceFile, findChild("M", sourceFile), createTestClass());
|
||||
});
|
||||
}
|
||||
|
||||
function findOpenBraceForConstructor(sourceFile: SourceFile) {
|
||||
function findConstructor(sourceFile: SourceFile): ConstructorDeclaration {
|
||||
const classDecl = <ClassDeclaration>sourceFile.statements[0];
|
||||
const constructorDecl = forEach(classDecl.members, m => m.kind === SyntaxKind.Constructor && (<ConstructorDeclaration>m).body && <ConstructorDeclaration>m);
|
||||
return constructorDecl.body.getFirstToken();
|
||||
return find<ClassElement, ConstructorDeclaration>(classDecl.members, (m): m is ConstructorDeclaration => isConstructorDeclaration(m) && !!m.body)!;
|
||||
}
|
||||
function createTestSuperCall() {
|
||||
const superCall = createCall(
|
||||
@@ -359,8 +357,8 @@ class A {
|
||||
}
|
||||
}
|
||||
`;
|
||||
runSingleFileTest("insertNodeAfter3", /*placeOpenBraceOnNewLineForFunctions*/ false, text1, /*validateNodes*/ false, (sourceFile, changeTracker) => {
|
||||
changeTracker.insertNodeAfter(sourceFile, findOpenBraceForConstructor(sourceFile), createTestSuperCall(), { suffix: newLineCharacter });
|
||||
runSingleFileTest("insertNodeAtConstructorStart", /*placeOpenBraceOnNewLineForFunctions*/ false, text1, /*validateNodes*/ false, (sourceFile, changeTracker) => {
|
||||
changeTracker.insertNodeAtConstructorStart(sourceFile, findConstructor(sourceFile), createTestSuperCall());
|
||||
});
|
||||
const text2 = `
|
||||
class A {
|
||||
@@ -370,7 +368,7 @@ class A {
|
||||
}
|
||||
`;
|
||||
runSingleFileTest("insertNodeAfter4", /*placeOpenBraceOnNewLineForFunctions*/ false, text2, /*validateNodes*/ false, (sourceFile, changeTracker) => {
|
||||
changeTracker.insertNodeAfter(sourceFile, findVariableStatementContaining("x", sourceFile), createTestSuperCall(), { suffix: newLineCharacter });
|
||||
changeTracker.insertNodeAfter(sourceFile, findVariableStatementContaining("x", sourceFile), createTestSuperCall());
|
||||
});
|
||||
const text3 = `
|
||||
class A {
|
||||
@@ -379,8 +377,8 @@ class A {
|
||||
}
|
||||
}
|
||||
`;
|
||||
runSingleFileTest("insertNodeAfter3-block with newline", /*placeOpenBraceOnNewLineForFunctions*/ false, text3, /*validateNodes*/ false, (sourceFile, changeTracker) => {
|
||||
changeTracker.insertNodeAfter(sourceFile, findOpenBraceForConstructor(sourceFile), createTestSuperCall(), { suffix: newLineCharacter });
|
||||
runSingleFileTest("insertNodeAtConstructorStart-block with newline", /*placeOpenBraceOnNewLineForFunctions*/ false, text3, /*validateNodes*/ false, (sourceFile, changeTracker) => {
|
||||
changeTracker.insertNodeAtConstructorStart(sourceFile, findConstructor(sourceFile), createTestSuperCall());
|
||||
});
|
||||
}
|
||||
{
|
||||
@@ -638,7 +636,7 @@ class A {
|
||||
}
|
||||
const insertAfter = findChild("x", sourceFile);
|
||||
for (const newNode of newNodes) {
|
||||
changeTracker.insertNodeAfter(sourceFile, insertAfter, newNode, { suffix: newLineCharacter });
|
||||
changeTracker.insertNodeAfter(sourceFile, insertAfter, newNode);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -649,7 +647,7 @@ class A {
|
||||
}
|
||||
`;
|
||||
runSingleFileTest("insertNodeAfterInClass1", /*placeOpenBraceOnNewLineForFunctions*/ false, text, /*validateNodes*/ false, (sourceFile, changeTracker) => {
|
||||
changeTracker.insertNodeAfter(sourceFile, findChild("x", sourceFile), createProperty(undefined, undefined, "a", undefined, createKeywordTypeNode(SyntaxKind.BooleanKeyword), undefined), { suffix: newLineCharacter });
|
||||
changeTracker.insertNodeAfter(sourceFile, findChild("x", sourceFile), createProperty(undefined, undefined, "a", undefined, createKeywordTypeNode(SyntaxKind.BooleanKeyword), undefined));
|
||||
});
|
||||
}
|
||||
{
|
||||
@@ -659,7 +657,7 @@ class A {
|
||||
}
|
||||
`;
|
||||
runSingleFileTest("insertNodeAfterInClass2", /*placeOpenBraceOnNewLineForFunctions*/ false, text, /*validateNodes*/ false, (sourceFile, changeTracker) => {
|
||||
changeTracker.insertNodeAfter(sourceFile, findChild("x", sourceFile), createProperty(undefined, undefined, "a", undefined, createKeywordTypeNode(SyntaxKind.BooleanKeyword), undefined), { suffix: newLineCharacter });
|
||||
changeTracker.insertNodeAfter(sourceFile, findChild("x", sourceFile), createProperty(undefined, undefined, "a", undefined, createKeywordTypeNode(SyntaxKind.BooleanKeyword), undefined));
|
||||
});
|
||||
}
|
||||
{
|
||||
@@ -698,7 +696,7 @@ class A {
|
||||
/*questionToken*/ undefined,
|
||||
createKeywordTypeNode(SyntaxKind.AnyKeyword),
|
||||
/*initializer*/ undefined);
|
||||
changeTracker.insertNodeAfter(sourceFile, findChild("x", sourceFile), newNode, { suffix: newLineCharacter });
|
||||
changeTracker.insertNodeAfter(sourceFile, findChild("x", sourceFile), newNode);
|
||||
});
|
||||
}
|
||||
{
|
||||
@@ -716,7 +714,7 @@ class A {
|
||||
/*questionToken*/ undefined,
|
||||
createKeywordTypeNode(SyntaxKind.AnyKeyword),
|
||||
/*initializer*/ undefined);
|
||||
changeTracker.insertNodeAfter(sourceFile, findChild("x", sourceFile), newNode, { suffix: newLineCharacter });
|
||||
changeTracker.insertNodeAfter(sourceFile, findChild("x", sourceFile), newNode);
|
||||
});
|
||||
}
|
||||
{
|
||||
@@ -733,7 +731,7 @@ interface A {
|
||||
/*questionToken*/ undefined,
|
||||
createKeywordTypeNode(SyntaxKind.AnyKeyword),
|
||||
/*initializer*/ undefined);
|
||||
changeTracker.insertNodeAfter(sourceFile, findChild("x", sourceFile), newNode, { suffix: newLineCharacter });
|
||||
changeTracker.insertNodeAfter(sourceFile, findChild("x", sourceFile), newNode);
|
||||
});
|
||||
}
|
||||
{
|
||||
@@ -750,7 +748,7 @@ interface A {
|
||||
/*questionToken*/ undefined,
|
||||
createKeywordTypeNode(SyntaxKind.AnyKeyword),
|
||||
/*initializer*/ undefined);
|
||||
changeTracker.insertNodeAfter(sourceFile, findChild("x", sourceFile), newNode, { suffix: newLineCharacter });
|
||||
changeTracker.insertNodeAfter(sourceFile, findChild("x", sourceFile), newNode);
|
||||
});
|
||||
}
|
||||
{
|
||||
@@ -759,7 +757,7 @@ let x = foo
|
||||
`;
|
||||
runSingleFileTest("insertNodeInStatementListAfterNodeWithoutSeparator1", /*placeOpenBraceOnNewLineForFunctions*/ false, text, /*validateNodes*/ false, (sourceFile, changeTracker) => {
|
||||
const newNode = createStatement(createParen(createLiteral(1)));
|
||||
changeTracker.insertNodeAfter(sourceFile, findVariableStatementContaining("x", sourceFile), newNode, { suffix: newLineCharacter });
|
||||
changeTracker.insertNodeAfter(sourceFile, findVariableStatementContaining("x", sourceFile), newNode);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@@ -33,20 +33,20 @@ namespace ts.textStorage {
|
||||
for (let offset = 0; offset < end - start; offset++) {
|
||||
const pos1 = ts1.lineOffsetToPosition(line + 1, offset + 1);
|
||||
const pos2 = ts2.lineOffsetToPosition(line + 1, offset + 1);
|
||||
assert(pos1 === pos2, `lineOffsetToPosition ${line + 1}-${offset + 1}: expected ${pos1} to equal ${pos2}`);
|
||||
assert.isTrue(pos1 === pos2, `lineOffsetToPosition ${line + 1}-${offset + 1}: expected ${pos1} to equal ${pos2}`);
|
||||
}
|
||||
|
||||
const {start: start1, length: length1 } = ts1.lineToTextSpan(line);
|
||||
const {start: start2, length: length2 } = ts2.lineToTextSpan(line);
|
||||
assert(start1 === start2, `lineToTextSpan ${line}::start:: expected ${start1} to equal ${start2}`);
|
||||
assert(length1 === length2, `lineToTextSpan ${line}::length:: expected ${length1} to equal ${length2}`);
|
||||
assert.isTrue(start1 === start2, `lineToTextSpan ${line}::start:: expected ${start1} to equal ${start2}`);
|
||||
assert.isTrue(length1 === length2, `lineToTextSpan ${line}::length:: expected ${length1} to equal ${length2}`);
|
||||
}
|
||||
|
||||
for (let pos = 0; pos < f.content.length; pos++) {
|
||||
const { line: line1, offset: offset1 } = ts1.positionToLineOffset(pos);
|
||||
const { line: line2, offset: offset2 } = ts2.positionToLineOffset(pos);
|
||||
assert(line1 === line2, `positionToLineOffset ${pos}::line:: expected ${line1} to equal ${line2}`);
|
||||
assert(offset1 === offset2, `positionToLineOffset ${pos}::offset:: expected ${offset1} to equal ${offset2}`);
|
||||
assert.isTrue(line1 === line2, `positionToLineOffset ${pos}::line:: expected ${line1} to equal ${line2}`);
|
||||
assert.isTrue(offset1 === offset2, `positionToLineOffset ${pos}::offset:: expected ${offset1} to equal ${offset2}`);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -55,16 +55,16 @@ namespace ts.textStorage {
|
||||
const ts1 = new server.TextStorage(host, server.asNormalizedPath(f.path));
|
||||
|
||||
ts1.getSnapshot();
|
||||
assert(!ts1.hasScriptVersionCache_TestOnly(), "should not have script version cache - 1");
|
||||
assert.isTrue(!ts1.hasScriptVersionCache_TestOnly(), "should not have script version cache - 1");
|
||||
|
||||
ts1.edit(0, 5, " ");
|
||||
assert(ts1.hasScriptVersionCache_TestOnly(), "have script version cache - 1");
|
||||
assert.isTrue(ts1.hasScriptVersionCache_TestOnly(), "have script version cache - 1");
|
||||
|
||||
ts1.useText();
|
||||
assert(!ts1.hasScriptVersionCache_TestOnly(), "should not have script version cache - 2");
|
||||
assert.isTrue(!ts1.hasScriptVersionCache_TestOnly(), "should not have script version cache - 2");
|
||||
|
||||
ts1.getLineInfo(0);
|
||||
assert(ts1.hasScriptVersionCache_TestOnly(), "have script version cache - 2");
|
||||
assert.isTrue(ts1.hasScriptVersionCache_TestOnly(), "have script version cache - 2");
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
@@ -133,7 +133,7 @@ namespace ts.tscWatch {
|
||||
|
||||
function assertWatchDiagnosticAt(host: WatchedSystem, outputAt: number, diagnosticMessage: DiagnosticMessage) {
|
||||
const output = host.getOutput()[outputAt];
|
||||
assert(endsWith(output, getWatchDiagnosticWithoutDate(host, diagnosticMessage)), "outputs[" + outputAt + "] is " + output);
|
||||
assert.isTrue(endsWith(output, getWatchDiagnosticWithoutDate(host, diagnosticMessage)), "outputs[" + outputAt + "] is " + output);
|
||||
}
|
||||
|
||||
function getWatchDiagnosticWithoutDate(host: WatchedSystem, diagnosticMessage: DiagnosticMessage) {
|
||||
@@ -1543,11 +1543,11 @@ namespace ts.tscWatch {
|
||||
function verifyEmittedFiles(host: WatchedSystem, emittedFiles: EmittedFile[]) {
|
||||
for (const { path, content, shouldBeWritten } of emittedFiles) {
|
||||
if (shouldBeWritten) {
|
||||
assert(host.fileExists(path), `Expected file ${path} to be present`);
|
||||
assert.isTrue(host.fileExists(path), `Expected file ${path} to be present`);
|
||||
assert.equal(host.readFile(path), content, `Contents of file ${path} do not match`);
|
||||
}
|
||||
else {
|
||||
assert(!host.fileExists(path), `Expected file ${path} to be absent`);
|
||||
assert.isNotTrue(host.fileExists(path), `Expected file ${path} to be absent`);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1723,7 +1723,7 @@ namespace ts.tscWatch {
|
||||
return false;
|
||||
}
|
||||
fileExistsIsCalled = true;
|
||||
assert(fileName.indexOf("/f2.") !== -1);
|
||||
assert.isTrue(fileName.indexOf("/f2.") !== -1);
|
||||
return originalFileExists.call(host, fileName);
|
||||
};
|
||||
|
||||
@@ -1738,7 +1738,7 @@ namespace ts.tscWatch {
|
||||
getDiagnosticModuleNotFoundOfFile(watch(), root, "f2")
|
||||
], /*errorsPosition*/ ExpectedOutputErrorsPosition.AfterFileChangeDetected);
|
||||
|
||||
assert(fileExistsIsCalled);
|
||||
assert.isTrue(fileExistsIsCalled);
|
||||
}
|
||||
{
|
||||
let fileExistsCalled = false;
|
||||
@@ -1747,7 +1747,7 @@ namespace ts.tscWatch {
|
||||
return false;
|
||||
}
|
||||
fileExistsCalled = true;
|
||||
assert(fileName.indexOf("/f1.") !== -1);
|
||||
assert.isTrue(fileName.indexOf("/f1.") !== -1);
|
||||
return originalFileExists.call(host, fileName);
|
||||
};
|
||||
|
||||
@@ -1758,7 +1758,7 @@ namespace ts.tscWatch {
|
||||
host.runQueuedTimeoutCallbacks();
|
||||
|
||||
checkOutputErrors(host, [f1IsNotModule, cannotFindFoo], /*errorsPosition*/ ExpectedOutputErrorsPosition.AfterFileChangeDetected);
|
||||
assert(fileExistsCalled);
|
||||
assert.isTrue(fileExistsCalled);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -1791,7 +1791,7 @@ namespace ts.tscWatch {
|
||||
|
||||
const watch = createWatchModeWithoutConfigFile([root.path], host, { module: ModuleKind.AMD });
|
||||
|
||||
assert(fileExistsCalledForBar, "'fileExists' should be called");
|
||||
assert.isTrue(fileExistsCalledForBar, "'fileExists' should be called");
|
||||
checkOutputErrors(host, [
|
||||
getDiagnosticModuleNotFoundOfFile(watch(), root, "bar")
|
||||
], /*errorsPosition*/ ExpectedOutputErrorsPosition.AfterCompilationStarting);
|
||||
@@ -1802,7 +1802,7 @@ namespace ts.tscWatch {
|
||||
|
||||
host.runQueuedTimeoutCallbacks();
|
||||
checkOutputErrors(host, emptyArray, /*errorsPosition*/ ExpectedOutputErrorsPosition.AfterFileChangeDetected);
|
||||
assert(fileExistsCalledForBar, "'fileExists' should be called.");
|
||||
assert.isTrue(fileExistsCalledForBar, "'fileExists' should be called.");
|
||||
});
|
||||
|
||||
it("should compile correctly when resolved module goes missing and then comes back (module is not part of the root)", () => {
|
||||
@@ -1833,13 +1833,13 @@ namespace ts.tscWatch {
|
||||
|
||||
const watch = createWatchModeWithoutConfigFile([root.path], host, { module: ModuleKind.AMD });
|
||||
|
||||
assert(fileExistsCalledForBar, "'fileExists' should be called");
|
||||
assert.isTrue(fileExistsCalledForBar, "'fileExists' should be called");
|
||||
checkOutputErrors(host, emptyArray, /*errorsPosition*/ ExpectedOutputErrorsPosition.AfterCompilationStarting);
|
||||
|
||||
fileExistsCalledForBar = false;
|
||||
host.reloadFS(files);
|
||||
host.runQueuedTimeoutCallbacks();
|
||||
assert(fileExistsCalledForBar, "'fileExists' should be called.");
|
||||
assert.isTrue(fileExistsCalledForBar, "'fileExists' should be called.");
|
||||
checkOutputErrors(host, [
|
||||
getDiagnosticModuleNotFoundOfFile(watch(), root, "bar")
|
||||
], /*errorsPosition*/ ExpectedOutputErrorsPosition.AfterFileChangeDetected);
|
||||
@@ -1848,7 +1848,7 @@ namespace ts.tscWatch {
|
||||
host.reloadFS(filesWithImported);
|
||||
host.checkTimeoutQueueLengthAndRun(1);
|
||||
checkOutputErrors(host, emptyArray, /*errorsPosition*/ ExpectedOutputErrorsPosition.AfterFileChangeDetected);
|
||||
assert(fileExistsCalledForBar, "'fileExists' should be called.");
|
||||
assert.isTrue(fileExistsCalledForBar, "'fileExists' should be called.");
|
||||
});
|
||||
|
||||
it("works when module resolution changes to ambient module", () => {
|
||||
@@ -2050,7 +2050,7 @@ declare module "fs" {
|
||||
|
||||
checkProgramActualFiles(watch(), mapDefined(files, f => f === configFile ? undefined : f.path));
|
||||
const outputFile1 = changeExtension((outputFolder + getBaseFileName(file1.path)), ".js");
|
||||
assert(host.fileExists(outputFile1));
|
||||
assert.isTrue(host.fileExists(outputFile1));
|
||||
assert.equal(host.readFile(outputFile1), file1.content + host.newLine);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -11,20 +11,20 @@ namespace ts {
|
||||
function assertParseError(jsonText: string) {
|
||||
const parsed = ts.parseConfigFileTextToJson("/apath/tsconfig.json", jsonText);
|
||||
assert.deepEqual(parsed.config, {});
|
||||
assert(undefined !== parsed.error);
|
||||
assert.isTrue(undefined !== parsed.error);
|
||||
}
|
||||
|
||||
function assertParseErrorWithExcludesKeyword(jsonText: string) {
|
||||
{
|
||||
const parsed = ts.parseConfigFileTextToJson("/apath/tsconfig.json", jsonText);
|
||||
const parsedCommand = ts.parseJsonConfigFileContent(parsed.config, ts.sys, "tests/cases/unittests");
|
||||
assert(parsedCommand.errors && parsedCommand.errors.length === 1 &&
|
||||
assert.isTrue(parsedCommand.errors && parsedCommand.errors.length === 1 &&
|
||||
parsedCommand.errors[0].code === ts.Diagnostics.Unknown_option_excludes_Did_you_mean_exclude.code);
|
||||
}
|
||||
{
|
||||
const parsed = ts.parseJsonText("/apath/tsconfig.json", jsonText);
|
||||
const parsedCommand = ts.parseJsonSourceFileConfigFileContent(parsed, ts.sys, "tests/cases/unittests");
|
||||
assert(parsedCommand.errors && parsedCommand.errors.length === 1 &&
|
||||
assert.isTrue(parsedCommand.errors && parsedCommand.errors.length === 1 &&
|
||||
parsedCommand.errors[0].code === ts.Diagnostics.Unknown_option_excludes_Did_you_mean_exclude.code);
|
||||
}
|
||||
}
|
||||
@@ -44,26 +44,26 @@ namespace ts {
|
||||
function assertParseFileList(jsonText: string, configFileName: string, basePath: string, allFileList: string[], expectedFileList: string[]) {
|
||||
{
|
||||
const parsed = getParsedCommandJson(jsonText, configFileName, basePath, allFileList);
|
||||
assert(arrayIsEqualTo(parsed.fileNames.sort(), expectedFileList.sort()));
|
||||
assert.isTrue(arrayIsEqualTo(parsed.fileNames.sort(), expectedFileList.sort()));
|
||||
}
|
||||
{
|
||||
const parsed = getParsedCommandJsonNode(jsonText, configFileName, basePath, allFileList);
|
||||
assert(arrayIsEqualTo(parsed.fileNames.sort(), expectedFileList.sort()));
|
||||
assert.isTrue(arrayIsEqualTo(parsed.fileNames.sort(), expectedFileList.sort()));
|
||||
}
|
||||
}
|
||||
|
||||
function assertParseFileDiagnostics(jsonText: string, configFileName: string, basePath: string, allFileList: string[], expectedDiagnosticCode: number, noLocation?: boolean) {
|
||||
{
|
||||
const parsed = getParsedCommandJson(jsonText, configFileName, basePath, allFileList);
|
||||
assert(parsed.errors.length >= 0);
|
||||
assert(parsed.errors.filter(e => e.code === expectedDiagnosticCode).length > 0, `Expected error code ${expectedDiagnosticCode} to be in ${JSON.stringify(parsed.errors)}`);
|
||||
assert.isTrue(parsed.errors.length >= 0);
|
||||
assert.isTrue(parsed.errors.filter(e => e.code === expectedDiagnosticCode).length > 0, `Expected error code ${expectedDiagnosticCode} to be in ${JSON.stringify(parsed.errors)}`);
|
||||
}
|
||||
{
|
||||
const parsed = getParsedCommandJsonNode(jsonText, configFileName, basePath, allFileList);
|
||||
assert(parsed.errors.length >= 0);
|
||||
assert(parsed.errors.filter(e => e.code === expectedDiagnosticCode).length > 0, `Expected error code ${expectedDiagnosticCode} to be in ${JSON.stringify(parsed.errors)}`);
|
||||
assert.isTrue(parsed.errors.length >= 0);
|
||||
assert.isTrue(parsed.errors.filter(e => e.code === expectedDiagnosticCode).length > 0, `Expected error code ${expectedDiagnosticCode} to be in ${JSON.stringify(parsed.errors)}`);
|
||||
if (!noLocation) {
|
||||
assert(parsed.errors.filter(e => e.code === expectedDiagnosticCode && e.file && e.start && e.length).length > 0, `Expected error code ${expectedDiagnosticCode} to be in ${JSON.stringify(parsed.errors)} with location information`);
|
||||
assert.isTrue(parsed.errors.filter(e => e.code === expectedDiagnosticCode && e.file && e.start && e.length).length > 0, `Expected error code ${expectedDiagnosticCode} to be in ${JSON.stringify(parsed.errors)} with location information`);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -241,7 +241,7 @@ namespace ts {
|
||||
},
|
||||
files: ["file1.ts"]
|
||||
};
|
||||
assert(diagnostics.length === 2);
|
||||
assert.isTrue(diagnostics.length === 2);
|
||||
assert.equal(JSON.stringify(configJsonObject), JSON.stringify(expectedResult));
|
||||
});
|
||||
|
||||
|
||||
@@ -468,8 +468,8 @@ namespace ts.projectSystem {
|
||||
assert.equal(outputs[index], server.formatMessage(expectedEvent, nullLogger, Utils.byteLength, session.host.newLine));
|
||||
|
||||
if (isMostRecent) {
|
||||
assert.equal(events.length, index + 1, JSON.stringify(events));
|
||||
assert.equal(outputs.length, index + 1, JSON.stringify(outputs));
|
||||
assert.strictEqual(events.length, index + 1, JSON.stringify(events));
|
||||
assert.strictEqual(outputs.length, index + 1, JSON.stringify(outputs));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -572,8 +572,8 @@ namespace ts.projectSystem {
|
||||
const projectService = createProjectService(host);
|
||||
const { configFileName, configFileErrors } = projectService.openClientFile(file1.path);
|
||||
|
||||
assert.isDefined(configFileName, "should find config file");
|
||||
assert(!configFileErrors || configFileErrors.length === 0, `expect no errors in config file, got ${JSON.stringify(configFileErrors)}`);
|
||||
assert(configFileName, "should find config file");
|
||||
assert.isTrue(!configFileErrors || configFileErrors.length === 0, `expect no errors in config file, got ${JSON.stringify(configFileErrors)}`);
|
||||
checkNumberOfInferredProjects(projectService, 0);
|
||||
checkNumberOfConfiguredProjects(projectService, 1);
|
||||
|
||||
@@ -612,8 +612,8 @@ namespace ts.projectSystem {
|
||||
const projectService = createProjectService(host);
|
||||
const { configFileName, configFileErrors } = projectService.openClientFile(file1.path);
|
||||
|
||||
assert.isDefined(configFileName, "should find config file");
|
||||
assert(!configFileErrors || configFileErrors.length === 0, `expect no errors in config file, got ${JSON.stringify(configFileErrors)}`);
|
||||
assert(configFileName, "should find config file");
|
||||
assert.isTrue(!configFileErrors || configFileErrors.length === 0, `expect no errors in config file, got ${JSON.stringify(configFileErrors)}`);
|
||||
checkNumberOfInferredProjects(projectService, 0);
|
||||
checkNumberOfConfiguredProjects(projectService, 1);
|
||||
|
||||
@@ -821,7 +821,7 @@ namespace ts.projectSystem {
|
||||
host.reloadFS([file1, commonFile2, libFile]);
|
||||
host.runQueuedTimeoutCallbacks();
|
||||
checkNumberOfInferredProjects(projectService, 1);
|
||||
assert.equal(projectService.inferredProjects[0], project, "Inferred project should be same");
|
||||
assert.strictEqual(projectService.inferredProjects[0], project, "Inferred project should be same");
|
||||
checkProjectRootFiles(project, [file1.path]);
|
||||
checkProjectActualFiles(project, [file1.path, libFile.path, commonFile2.path]);
|
||||
diags = session.executeCommand(getErrRequest).response as server.protocol.Diagnostic[];
|
||||
@@ -1024,11 +1024,11 @@ namespace ts.projectSystem {
|
||||
|
||||
projectService.openExternalProject({ rootFiles: toExternalFiles([file1.path]), options: {}, projectFileName: proj1name });
|
||||
const proj1 = projectService.findProject(proj1name);
|
||||
assert(proj1.languageServiceEnabled);
|
||||
assert.isTrue(proj1.languageServiceEnabled);
|
||||
|
||||
projectService.openExternalProject({ rootFiles: toExternalFiles([file2.path]), options: {}, projectFileName: proj2name });
|
||||
const proj2 = projectService.findProject(proj2name);
|
||||
assert(proj2.languageServiceEnabled);
|
||||
assert.isTrue(proj2.languageServiceEnabled);
|
||||
|
||||
projectService.openExternalProject({ rootFiles: toExternalFiles([file3.path]), options: {}, projectFileName: proj3name });
|
||||
const proj3 = projectService.findProject(proj3name);
|
||||
@@ -1100,18 +1100,18 @@ namespace ts.projectSystem {
|
||||
projectService.openClientFile(file1.path);
|
||||
checkNumberOfConfiguredProjects(projectService, 1);
|
||||
const project = projectService.configuredProjects.get(configFile.path);
|
||||
assert(project.hasOpenRef()); // file1
|
||||
assert.isTrue(project.hasOpenRef()); // file1
|
||||
|
||||
projectService.closeClientFile(file1.path);
|
||||
checkNumberOfConfiguredProjects(projectService, 1);
|
||||
assert.equal(projectService.configuredProjects.get(configFile.path), project);
|
||||
assert.strictEqual(projectService.configuredProjects.get(configFile.path), project);
|
||||
assert.isFalse(project.hasOpenRef()); // No open files
|
||||
assert.isFalse(project.isClosed());
|
||||
|
||||
projectService.openClientFile(file2.path);
|
||||
checkNumberOfConfiguredProjects(projectService, 1);
|
||||
assert.equal(projectService.configuredProjects.get(configFile.path), project);
|
||||
assert(project.hasOpenRef()); // file2
|
||||
assert.strictEqual(projectService.configuredProjects.get(configFile.path), project);
|
||||
assert.isTrue(project.hasOpenRef()); // file2
|
||||
assert.isFalse(project.isClosed());
|
||||
});
|
||||
|
||||
@@ -1134,18 +1134,18 @@ namespace ts.projectSystem {
|
||||
projectService.openClientFile(file1.path);
|
||||
checkNumberOfConfiguredProjects(projectService, 1);
|
||||
const project = projectService.configuredProjects.get(configFile.path);
|
||||
assert(project.hasOpenRef()); // file1
|
||||
assert.isTrue(project.hasOpenRef()); // file1
|
||||
|
||||
projectService.closeClientFile(file1.path);
|
||||
checkNumberOfConfiguredProjects(projectService, 1);
|
||||
assert.equal(projectService.configuredProjects.get(configFile.path), project);
|
||||
assert.strictEqual(projectService.configuredProjects.get(configFile.path), project);
|
||||
assert.isFalse(project.hasOpenRef()); // No files
|
||||
assert.isFalse(project.isClosed());
|
||||
|
||||
projectService.openClientFile(libFile.path);
|
||||
checkNumberOfConfiguredProjects(projectService, 0);
|
||||
assert.isFalse(project.hasOpenRef()); // No files + project closed
|
||||
assert(project.isClosed());
|
||||
assert.isTrue(project.isClosed());
|
||||
});
|
||||
|
||||
it("should not close external project with no open files", () => {
|
||||
@@ -1233,28 +1233,28 @@ namespace ts.projectSystem {
|
||||
// open client file - should not lead to creation of inferred project
|
||||
projectService.openClientFile(file1.path, file1.content);
|
||||
checkNumberOfProjects(projectService, { configuredProjects: 2 });
|
||||
assert.equal(projectService.configuredProjects.get(config1.path), proj1);
|
||||
assert.equal(projectService.configuredProjects.get(config2.path), proj2);
|
||||
assert.strictEqual(projectService.configuredProjects.get(config1.path), proj1);
|
||||
assert.strictEqual(projectService.configuredProjects.get(config2.path), proj2);
|
||||
|
||||
projectService.openClientFile(file3.path, file3.content);
|
||||
checkNumberOfProjects(projectService, { configuredProjects: 2, inferredProjects: 1 });
|
||||
assert.equal(projectService.configuredProjects.get(config1.path), proj1);
|
||||
assert.equal(projectService.configuredProjects.get(config2.path), proj2);
|
||||
assert.strictEqual(projectService.configuredProjects.get(config1.path), proj1);
|
||||
assert.strictEqual(projectService.configuredProjects.get(config2.path), proj2);
|
||||
|
||||
projectService.closeExternalProject(externalProjectName);
|
||||
// open file 'file1' from configured project keeps project alive
|
||||
checkNumberOfProjects(projectService, { configuredProjects: 1, inferredProjects: 1 });
|
||||
assert.equal(projectService.configuredProjects.get(config1.path), proj1);
|
||||
assert.strictEqual(projectService.configuredProjects.get(config1.path), proj1);
|
||||
assert.isUndefined(projectService.configuredProjects.get(config2.path));
|
||||
|
||||
projectService.closeClientFile(file3.path);
|
||||
checkNumberOfProjects(projectService, { configuredProjects: 1 });
|
||||
assert.equal(projectService.configuredProjects.get(config1.path), proj1);
|
||||
assert.strictEqual(projectService.configuredProjects.get(config1.path), proj1);
|
||||
assert.isUndefined(projectService.configuredProjects.get(config2.path));
|
||||
|
||||
projectService.closeClientFile(file1.path);
|
||||
checkNumberOfProjects(projectService, { configuredProjects: 1 });
|
||||
assert.equal(projectService.configuredProjects.get(config1.path), proj1);
|
||||
assert.strictEqual(projectService.configuredProjects.get(config1.path), proj1);
|
||||
assert.isUndefined(projectService.configuredProjects.get(config2.path));
|
||||
|
||||
projectService.openClientFile(file2.path, file2.content);
|
||||
@@ -1286,14 +1286,14 @@ namespace ts.projectSystem {
|
||||
|
||||
const completions1 = service.externalProjects[0].getLanguageService().getCompletionsAtPosition(f1.path, 2, { includeExternalModuleExports: false });
|
||||
// should contain completions for string
|
||||
assert(completions1.entries.some(e => e.name === "charAt"), "should contain 'charAt'");
|
||||
assert.isTrue(completions1.entries.some(e => e.name === "charAt"), "should contain 'charAt'");
|
||||
assert.isFalse(completions1.entries.some(e => e.name === "toExponential"), "should not contain 'toExponential'");
|
||||
|
||||
service.closeClientFile(f2.path);
|
||||
const completions2 = service.externalProjects[0].getLanguageService().getCompletionsAtPosition(f1.path, 2, { includeExternalModuleExports: false });
|
||||
// should contain completions for string
|
||||
assert.isFalse(completions2.entries.some(e => e.name === "charAt"), "should not contain 'charAt'");
|
||||
assert(completions2.entries.some(e => e.name === "toExponential"), "should contain 'toExponential'");
|
||||
assert.isTrue(completions2.entries.some(e => e.name === "toExponential"), "should contain 'toExponential'");
|
||||
});
|
||||
|
||||
it("clear mixed content file after closing", () => {
|
||||
@@ -1317,7 +1317,7 @@ namespace ts.projectSystem {
|
||||
checkProjectActualFiles(service.externalProjects[0], [f1.path, f2.path, libFile.path]);
|
||||
|
||||
const completions1 = service.externalProjects[0].getLanguageService().getCompletionsAtPosition(f1.path, 0, { includeExternalModuleExports: false });
|
||||
assert(completions1.entries.some(e => e.name === "somelongname"), "should contain 'somelongname'");
|
||||
assert.isTrue(completions1.entries.some(e => e.name === "somelongname"), "should contain 'somelongname'");
|
||||
|
||||
service.closeClientFile(f2.path);
|
||||
const completions2 = service.externalProjects[0].getLanguageService().getCompletionsAtPosition(f1.path, 0, { includeExternalModuleExports: false });
|
||||
@@ -1387,16 +1387,16 @@ namespace ts.projectSystem {
|
||||
});
|
||||
|
||||
checkNumberOfProjects(projectService, { configuredProjects: 1 });
|
||||
assert.equal(projectService.configuredProjects.get(configFile.path), project);
|
||||
assert.strictEqual(projectService.configuredProjects.get(configFile.path), project);
|
||||
|
||||
projectService.closeExternalProject(externalProjectName);
|
||||
// configured project is alive since file is still open
|
||||
checkNumberOfProjects(projectService, { configuredProjects: 1 });
|
||||
assert.equal(projectService.configuredProjects.get(configFile.path), project);
|
||||
assert.strictEqual(projectService.configuredProjects.get(configFile.path), project);
|
||||
|
||||
projectService.closeClientFile(file1.path);
|
||||
checkNumberOfProjects(projectService, { configuredProjects: 1 });
|
||||
assert.equal(projectService.configuredProjects.get(configFile.path), project);
|
||||
assert.strictEqual(projectService.configuredProjects.get(configFile.path), project);
|
||||
|
||||
projectService.openClientFile(file2.path);
|
||||
checkNumberOfProjects(projectService, { inferredProjects: 1 });
|
||||
@@ -1910,7 +1910,7 @@ namespace ts.projectSystem {
|
||||
|
||||
// The configured project should now be updated to include html file
|
||||
checkNumberOfProjects(projectService, { configuredProjects: 1 });
|
||||
assert.equal(configuredProjectAt(projectService, 0), configuredProj, "Same configured project should be updated");
|
||||
assert.strictEqual(configuredProjectAt(projectService, 0), configuredProj, "Same configured project should be updated");
|
||||
checkProjectActualFiles(configuredProjectAt(projectService, 0), [file1.path, file2.path, config.path]);
|
||||
|
||||
// Open HTML file
|
||||
@@ -2176,18 +2176,18 @@ namespace ts.projectSystem {
|
||||
projectService.openClientFile(file2.path);
|
||||
checkNumberOfProjects(projectService, { configuredProjects: 1 });
|
||||
const project1 = projectService.configuredProjects.get(tsconfig1.path);
|
||||
assert(project1.hasOpenRef(), "Has open ref count in project1 - 1"); // file2
|
||||
assert.isTrue(project1.hasOpenRef(), "Has open ref count in project1 - 1"); // file2
|
||||
assert.equal(project1.getScriptInfo(file2.path).containingProjects.length, 1, "containing projects count");
|
||||
assert.isFalse(project1.isClosed());
|
||||
|
||||
projectService.openClientFile(file1.path);
|
||||
checkNumberOfProjects(projectService, { configuredProjects: 2 });
|
||||
assert(project1.hasOpenRef(), "Has open ref count in project1 - 2"); // file2
|
||||
assert.equal(projectService.configuredProjects.get(tsconfig1.path), project1);
|
||||
assert.isTrue(project1.hasOpenRef(), "Has open ref count in project1 - 2"); // file2
|
||||
assert.strictEqual(projectService.configuredProjects.get(tsconfig1.path), project1);
|
||||
assert.isFalse(project1.isClosed());
|
||||
|
||||
const project2 = projectService.configuredProjects.get(tsconfig2.path);
|
||||
assert(project2.hasOpenRef(), "Has open ref count in project2 - 2"); // file1
|
||||
assert.isTrue(project2.hasOpenRef(), "Has open ref count in project2 - 2"); // file1
|
||||
assert.isFalse(project2.isClosed());
|
||||
|
||||
assert.equal(project1.getScriptInfo(file1.path).containingProjects.length, 2, `${file1.path} containing projects count`);
|
||||
@@ -2196,9 +2196,9 @@ namespace ts.projectSystem {
|
||||
projectService.closeClientFile(file2.path);
|
||||
checkNumberOfProjects(projectService, { configuredProjects: 2 });
|
||||
assert.isFalse(project1.hasOpenRef(), "Has open ref count in project1 - 3"); // No files
|
||||
assert(project2.hasOpenRef(), "Has open ref count in project2 - 3"); // file1
|
||||
assert.equal(projectService.configuredProjects.get(tsconfig1.path), project1);
|
||||
assert.equal(projectService.configuredProjects.get(tsconfig2.path), project2);
|
||||
assert.isTrue(project2.hasOpenRef(), "Has open ref count in project2 - 3"); // file1
|
||||
assert.strictEqual(projectService.configuredProjects.get(tsconfig1.path), project1);
|
||||
assert.strictEqual(projectService.configuredProjects.get(tsconfig2.path), project2);
|
||||
assert.isFalse(project1.isClosed());
|
||||
assert.isFalse(project2.isClosed());
|
||||
|
||||
@@ -2206,18 +2206,18 @@ namespace ts.projectSystem {
|
||||
checkNumberOfProjects(projectService, { configuredProjects: 2 });
|
||||
assert.isFalse(project1.hasOpenRef(), "Has open ref count in project1 - 4"); // No files
|
||||
assert.isFalse(project2.hasOpenRef(), "Has open ref count in project2 - 4"); // No files
|
||||
assert.equal(projectService.configuredProjects.get(tsconfig1.path), project1);
|
||||
assert.equal(projectService.configuredProjects.get(tsconfig2.path), project2);
|
||||
assert.strictEqual(projectService.configuredProjects.get(tsconfig1.path), project1);
|
||||
assert.strictEqual(projectService.configuredProjects.get(tsconfig2.path), project2);
|
||||
assert.isFalse(project1.isClosed());
|
||||
assert.isFalse(project2.isClosed());
|
||||
|
||||
projectService.openClientFile(file2.path);
|
||||
checkNumberOfProjects(projectService, { configuredProjects: 1 });
|
||||
assert.equal(projectService.configuredProjects.get(tsconfig1.path), project1);
|
||||
assert.strictEqual(projectService.configuredProjects.get(tsconfig1.path), project1);
|
||||
assert.isUndefined(projectService.configuredProjects.get(tsconfig2.path));
|
||||
assert(project1.hasOpenRef(), "Has open ref count in project1 - 5"); // file2
|
||||
assert.isTrue(project1.hasOpenRef(), "Has open ref count in project1 - 5"); // file2
|
||||
assert.isFalse(project1.isClosed());
|
||||
assert(project2.isClosed());
|
||||
assert.isTrue(project2.isClosed());
|
||||
});
|
||||
|
||||
it("Open ref of configured project when open file gets added to the project as part of configured file update", () => {
|
||||
@@ -2255,7 +2255,7 @@ namespace ts.projectSystem {
|
||||
checkOpenFiles(projectService, files);
|
||||
checkNumberOfProjects(projectService, { configuredProjects: 1, inferredProjects: 2 });
|
||||
const configProject1 = projectService.configuredProjects.get(configFile.path);
|
||||
assert(configProject1.hasOpenRef()); // file1 and file3
|
||||
assert.isTrue(configProject1.hasOpenRef()); // file1 and file3
|
||||
checkProjectActualFiles(configProject1, [file1.path, file3.path, configFile.path]);
|
||||
const inferredProject1 = projectService.inferredProjects[0];
|
||||
checkProjectActualFiles(inferredProject1, [file2.path]);
|
||||
@@ -2272,7 +2272,7 @@ namespace ts.projectSystem {
|
||||
checkNumberOfInferredProjects(projectService, 1);
|
||||
const inferredProject3 = projectService.inferredProjects[0];
|
||||
checkProjectActualFiles(inferredProject3, [file4.path]);
|
||||
assert.equal(inferredProject3, inferredProject2);
|
||||
assert.strictEqual(inferredProject3, inferredProject2);
|
||||
|
||||
projectService.closeClientFile(file1.path);
|
||||
projectService.closeClientFile(file2.path);
|
||||
@@ -2298,7 +2298,7 @@ namespace ts.projectSystem {
|
||||
checkNumberOfInferredProjects(projectService, 1);
|
||||
const inferredProject5 = projectService.inferredProjects[0];
|
||||
checkProjectActualFiles(inferredProject4, [file4.path]);
|
||||
assert.equal(inferredProject5, inferredProject4);
|
||||
assert.strictEqual(inferredProject5, inferredProject4);
|
||||
|
||||
const file5: FileOrFolder = {
|
||||
path: "/file5.ts",
|
||||
@@ -2307,13 +2307,13 @@ namespace ts.projectSystem {
|
||||
host.reloadFS(files.concat(configFile, file5));
|
||||
projectService.openClientFile(file5.path);
|
||||
verifyScriptInfosAreUndefined([file1, file2, file3]);
|
||||
assert.equal(projectService.getScriptInfoForPath(file4.path as Path), find(infos, info => info.path === file4.path));
|
||||
assert.strictEqual(projectService.getScriptInfoForPath(file4.path as Path), find(infos, info => info.path === file4.path));
|
||||
assert.isDefined(projectService.getScriptInfoForPath(file5.path as Path));
|
||||
checkOpenFiles(projectService, [file4, file5]);
|
||||
checkNumberOfConfiguredProjects(projectService, 0);
|
||||
|
||||
function verifyScriptInfos() {
|
||||
infos.forEach(info => assert.equal(projectService.getScriptInfoForPath(info.path), info));
|
||||
infos.forEach(info => assert.strictEqual(projectService.getScriptInfoForPath(info.path), info));
|
||||
}
|
||||
|
||||
function verifyScriptInfosAreUndefined(files: FileOrFolder[]) {
|
||||
@@ -2325,7 +2325,7 @@ namespace ts.projectSystem {
|
||||
function verifyConfiguredProjectStateAfterUpdate(hasOpenRef: boolean) {
|
||||
checkNumberOfConfiguredProjects(projectService, 1);
|
||||
const configProject2 = projectService.configuredProjects.get(configFile.path);
|
||||
assert.equal(configProject2, configProject1);
|
||||
assert.strictEqual(configProject2, configProject1);
|
||||
checkProjectActualFiles(configProject2, [file1.path, file2.path, file3.path, configFile.path]);
|
||||
assert.equal(configProject2.hasOpenRef(), hasOpenRef);
|
||||
}
|
||||
@@ -2364,7 +2364,7 @@ namespace ts.projectSystem {
|
||||
|
||||
checkNumberOfProjects(projectService, { configuredProjects: 1, inferredProjects: 1 });
|
||||
const configuredProject = projectService.configuredProjects.get(configFile.path);
|
||||
assert(configuredProject.hasOpenRef()); // file1 and file3
|
||||
assert.isTrue(configuredProject.hasOpenRef()); // file1 and file3
|
||||
checkProjectActualFiles(configuredProject, [file1.path, file3.path, configFile.path]);
|
||||
const inferredProject1 = projectService.inferredProjects[0];
|
||||
checkProjectActualFiles(inferredProject1, [file2.path]);
|
||||
@@ -2376,23 +2376,23 @@ namespace ts.projectSystem {
|
||||
configFile.content = "{}";
|
||||
host.reloadFS(files.concat(configFile));
|
||||
// Time out is not yet run so there is project update pending
|
||||
assert(configuredProject.hasOpenRef()); // Pending update and file2 might get into the project
|
||||
assert.isTrue(configuredProject.hasOpenRef()); // Pending update and file2 might get into the project
|
||||
|
||||
projectService.openClientFile(file4.path);
|
||||
|
||||
checkNumberOfProjects(projectService, { configuredProjects: 1, inferredProjects: 2 });
|
||||
assert.equal(projectService.configuredProjects.get(configFile.path), configuredProject);
|
||||
assert(configuredProject.hasOpenRef()); // Pending update and F2 might get into the project
|
||||
assert.equal(projectService.inferredProjects[0], inferredProject1);
|
||||
assert.strictEqual(projectService.configuredProjects.get(configFile.path), configuredProject);
|
||||
assert.isTrue(configuredProject.hasOpenRef()); // Pending update and F2 might get into the project
|
||||
assert.strictEqual(projectService.inferredProjects[0], inferredProject1);
|
||||
const inferredProject2 = projectService.inferredProjects[1];
|
||||
checkProjectActualFiles(inferredProject2, [file4.path]);
|
||||
|
||||
host.runQueuedTimeoutCallbacks();
|
||||
checkNumberOfProjects(projectService, { configuredProjects: 1, inferredProjects: 1 });
|
||||
assert.equal(projectService.configuredProjects.get(configFile.path), configuredProject);
|
||||
assert(configuredProject.hasOpenRef()); // file2
|
||||
assert.strictEqual(projectService.configuredProjects.get(configFile.path), configuredProject);
|
||||
assert.isTrue(configuredProject.hasOpenRef()); // file2
|
||||
checkProjectActualFiles(configuredProject, [file1.path, file2.path, file3.path, configFile.path]);
|
||||
assert.equal(projectService.inferredProjects[0], inferredProject2);
|
||||
assert.strictEqual(projectService.inferredProjects[0], inferredProject2);
|
||||
checkProjectActualFiles(inferredProject2, [file4.path]);
|
||||
});
|
||||
|
||||
@@ -2427,7 +2427,7 @@ namespace ts.projectSystem {
|
||||
options: {}
|
||||
});
|
||||
service.checkNumberOfProjects({ externalProjects: 1 });
|
||||
assert(service.externalProjects[0].languageServiceEnabled, "language service should be enabled");
|
||||
assert.isTrue(service.externalProjects[0].languageServiceEnabled, "language service should be enabled");
|
||||
|
||||
service.openExternalProject({
|
||||
projectFileName,
|
||||
@@ -2464,12 +2464,12 @@ namespace ts.projectSystem {
|
||||
projectService.openClientFile(f1.path);
|
||||
projectService.checkNumberOfProjects({ configuredProjects: 1 });
|
||||
const project = projectService.configuredProjects.get(config.path);
|
||||
assert(project.hasOpenRef()); // f1
|
||||
assert.isTrue(project.hasOpenRef()); // f1
|
||||
assert.isFalse(project.isClosed());
|
||||
|
||||
projectService.closeClientFile(f1.path);
|
||||
projectService.checkNumberOfProjects({ configuredProjects: 1 });
|
||||
assert.equal(projectService.configuredProjects.get(config.path), project);
|
||||
assert.strictEqual(projectService.configuredProjects.get(config.path), project);
|
||||
assert.isFalse(project.hasOpenRef()); // No files
|
||||
assert.isFalse(project.isClosed());
|
||||
|
||||
@@ -2488,7 +2488,7 @@ namespace ts.projectSystem {
|
||||
projectService.openClientFile(f4.path);
|
||||
projectService.checkNumberOfProjects({ inferredProjects: 1 });
|
||||
assert.isFalse(project.hasOpenRef()); // No files
|
||||
assert(project.isClosed());
|
||||
assert.isTrue(project.isClosed());
|
||||
|
||||
for (const f of [f1, f2, f3]) {
|
||||
// All the script infos should not be present since the project is closed and orphan script infos are collected
|
||||
@@ -2540,7 +2540,7 @@ namespace ts.projectSystem {
|
||||
checkNumberOfProjects(projectService, { configuredProjects: 1 });
|
||||
const project = configuredProjectAt(projectService, 0);
|
||||
assert.isFalse(project.languageServiceEnabled, "Language service enabled");
|
||||
assert(!!lastEvent, "should receive event");
|
||||
assert.isTrue(!!lastEvent, "should receive event");
|
||||
assert.equal(lastEvent.data.project, project, "project name");
|
||||
assert.equal(lastEvent.data.project.getProjectName(), config.path, "config path");
|
||||
assert.isFalse(lastEvent.data.languageServiceEnabled, "Language service state");
|
||||
@@ -2548,9 +2548,9 @@ namespace ts.projectSystem {
|
||||
host.reloadFS([f1, f2, configWithExclude]);
|
||||
host.checkTimeoutQueueLengthAndRun(2);
|
||||
checkNumberOfProjects(projectService, { configuredProjects: 1 });
|
||||
assert(project.languageServiceEnabled, "Language service enabled");
|
||||
assert.isTrue(project.languageServiceEnabled, "Language service enabled");
|
||||
assert.equal(lastEvent.data.project, project, "project");
|
||||
assert(lastEvent.data.languageServiceEnabled, "Language service state");
|
||||
assert.isTrue(lastEvent.data.languageServiceEnabled, "Language service state");
|
||||
});
|
||||
|
||||
it("syntactic features work even if language service is disabled", () => {
|
||||
@@ -2592,7 +2592,7 @@ namespace ts.projectSystem {
|
||||
checkNumberOfProjects(projectService, { configuredProjects: 1 });
|
||||
const project = configuredProjectAt(projectService, 0);
|
||||
assert.isFalse(project.languageServiceEnabled, "Language service enabled");
|
||||
assert(!!lastEvent, "should receive event");
|
||||
assert.isTrue(!!lastEvent, "should receive event");
|
||||
assert.equal(lastEvent.data.project, project, "project name");
|
||||
assert.isFalse(lastEvent.data.languageServiceEnabled, "Language service state");
|
||||
|
||||
@@ -2747,7 +2747,7 @@ namespace ts.projectSystem {
|
||||
host.runQueuedTimeoutCallbacks();
|
||||
watchedRecursiveDirectories.pop();
|
||||
checkNumberOfProjects(projectService, { configuredProjects: 1 });
|
||||
assert.equal(projectService.configuredProjects.get(configFile.path), project);
|
||||
assert.strictEqual(projectService.configuredProjects.get(configFile.path), project);
|
||||
checkProjectActualFiles(project, mapDefined(files, file => file === file2a ? undefined : file.path));
|
||||
checkWatchedFiles(host, mapDefined(files, file => file === file1 ? undefined : file.path));
|
||||
checkWatchedDirectories(host, [], /*recursive*/ false);
|
||||
@@ -2756,7 +2756,7 @@ namespace ts.projectSystem {
|
||||
// On next file open the files file2a should be closed and not watched any more
|
||||
projectService.openClientFile(file2.path);
|
||||
checkNumberOfProjects(projectService, { configuredProjects: 1 });
|
||||
assert.equal(projectService.configuredProjects.get(configFile.path), project);
|
||||
assert.strictEqual(projectService.configuredProjects.get(configFile.path), project);
|
||||
checkProjectActualFiles(project, mapDefined(files, file => file === file2a ? undefined : file.path));
|
||||
checkWatchedFiles(host, [libFile.path, configFile.path]);
|
||||
checkWatchedDirectories(host, [], /*recursive*/ false);
|
||||
@@ -2979,7 +2979,7 @@ namespace ts.projectSystem {
|
||||
});
|
||||
projectService.checkNumberOfProjects({ externalProjects: 1 });
|
||||
const typeAcquisition = projectService.externalProjects[0].getTypeAcquisition();
|
||||
assert(typeAcquisition.enable, "Typine acquisition should be enabled");
|
||||
assert.isTrue(typeAcquisition.enable, "Typine acquisition should be enabled");
|
||||
});
|
||||
});
|
||||
|
||||
@@ -3050,7 +3050,7 @@ namespace ts.projectSystem {
|
||||
|
||||
const localFunctionNavToRequst = makeSessionRequest<protocol.NavtoRequestArgs>(CommandNames.Navto, { searchValue: "foo", file: file1.path, projectFileName: configFile.path });
|
||||
const items2 = session.executeCommand(localFunctionNavToRequst).response as protocol.NavtoItem[];
|
||||
assert(containsNavToItem(items2, "foo", "function"), `Cannot find function symbol "foo".`);
|
||||
assert.isTrue(containsNavToItem(items2, "foo", "function"), `Cannot find function symbol "foo".`);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -3264,18 +3264,18 @@ namespace ts.projectSystem {
|
||||
projectService.openClientFile(f.path);
|
||||
projectService.checkNumberOfProjects({ configuredProjects: 1 });
|
||||
const project = projectService.configuredProjects.get(config.path);
|
||||
assert(project.hasOpenRef()); // f
|
||||
assert.isTrue(project.hasOpenRef()); // f
|
||||
|
||||
projectService.closeClientFile(f.path);
|
||||
projectService.checkNumberOfProjects({ configuredProjects: 1 });
|
||||
assert.equal(projectService.configuredProjects.get(config.path), project);
|
||||
assert.strictEqual(projectService.configuredProjects.get(config.path), project);
|
||||
assert.isFalse(project.hasOpenRef()); // No files
|
||||
assert.isFalse(project.isClosed());
|
||||
|
||||
projectService.openClientFile(f.path);
|
||||
projectService.checkNumberOfProjects({ configuredProjects: 1 });
|
||||
assert.equal(projectService.configuredProjects.get(config.path), project);
|
||||
assert(project.hasOpenRef()); // f
|
||||
assert.strictEqual(projectService.configuredProjects.get(config.path), project);
|
||||
assert.isTrue(project.hasOpenRef()); // f
|
||||
assert.isFalse(project.isClosed());
|
||||
});
|
||||
});
|
||||
@@ -3872,16 +3872,16 @@ namespace ts.projectSystem {
|
||||
{ file: file2.path }
|
||||
);
|
||||
let errorResult = <protocol.Diagnostic[]>session.executeCommand(file2GetErrRequest).response;
|
||||
assert(errorResult.length === 0);
|
||||
assert.isTrue(errorResult.length === 0);
|
||||
|
||||
const closeFileRequest = makeSessionRequest<protocol.FileRequestArgs>(CommandNames.Close, { file: file1.path });
|
||||
session.executeCommand(closeFileRequest);
|
||||
errorResult = <protocol.Diagnostic[]>session.executeCommand(file2GetErrRequest).response;
|
||||
assert(errorResult.length !== 0);
|
||||
assert.isTrue(errorResult.length !== 0);
|
||||
|
||||
openFilesForSession([file1], session);
|
||||
errorResult = <protocol.Diagnostic[]>session.executeCommand(file2GetErrRequest).response;
|
||||
assert(errorResult.length === 0);
|
||||
assert.isTrue(errorResult.length === 0);
|
||||
});
|
||||
|
||||
it("should be turned on for js-only external projects", () => {
|
||||
@@ -3917,7 +3917,7 @@ namespace ts.projectSystem {
|
||||
{ file: dTsFile.path }
|
||||
);
|
||||
const errorResult = <protocol.Diagnostic[]>session.executeCommand(dTsFileGetErrRequest).response;
|
||||
assert(errorResult.length === 0);
|
||||
assert.isTrue(errorResult.length === 0);
|
||||
});
|
||||
|
||||
it("should be turned on for js-only external projects with skipLibCheck=false", () => {
|
||||
@@ -3953,7 +3953,7 @@ namespace ts.projectSystem {
|
||||
{ file: dTsFile.path }
|
||||
);
|
||||
const errorResult = <protocol.Diagnostic[]>session.executeCommand(dTsFileGetErrRequest).response;
|
||||
assert(errorResult.length === 0);
|
||||
assert.isTrue(errorResult.length === 0);
|
||||
});
|
||||
|
||||
it("should not report bind errors for declaration files with skipLibCheck=true", () => {
|
||||
@@ -3984,14 +3984,14 @@ namespace ts.projectSystem {
|
||||
{ file: dTsFile1.path }
|
||||
);
|
||||
const error1Result = <protocol.Diagnostic[]>session.executeCommand(dTsFile1GetErrRequest).response;
|
||||
assert(error1Result.length === 0);
|
||||
assert.isTrue(error1Result.length === 0);
|
||||
|
||||
const dTsFile2GetErrRequest = makeSessionRequest<protocol.SemanticDiagnosticsSyncRequestArgs>(
|
||||
CommandNames.SemanticDiagnosticsSync,
|
||||
{ file: dTsFile2.path }
|
||||
);
|
||||
const error2Result = <protocol.Diagnostic[]>session.executeCommand(dTsFile2GetErrRequest).response;
|
||||
assert(error2Result.length === 0);
|
||||
assert.isTrue(error2Result.length === 0);
|
||||
});
|
||||
|
||||
it("should report semanitc errors for loose JS files with '// @ts-check' and skipLibCheck=true", () => {
|
||||
@@ -4012,7 +4012,7 @@ namespace ts.projectSystem {
|
||||
{ file: jsFile.path }
|
||||
);
|
||||
const errorResult = <protocol.Diagnostic[]>session.executeCommand(getErrRequest).response;
|
||||
assert(errorResult.length === 1);
|
||||
assert.isTrue(errorResult.length === 1);
|
||||
assert.equal(errorResult[0].code, Diagnostics.Operator_0_cannot_be_applied_to_types_1_and_2.code);
|
||||
});
|
||||
|
||||
@@ -4039,7 +4039,7 @@ namespace ts.projectSystem {
|
||||
{ file: jsFile.path }
|
||||
);
|
||||
const errorResult = <protocol.Diagnostic[]>session.executeCommand(getErrRequest).response;
|
||||
assert(errorResult.length === 1);
|
||||
assert.isTrue(errorResult.length === 1);
|
||||
assert.equal(errorResult[0].code, Diagnostics.Operator_0_cannot_be_applied_to_types_1_and_2.code);
|
||||
});
|
||||
|
||||
@@ -4068,7 +4068,7 @@ namespace ts.projectSystem {
|
||||
{ file: jsFile.path }
|
||||
);
|
||||
const errorResult = <protocol.Diagnostic[]>session.executeCommand(getErrRequest).response;
|
||||
assert(errorResult.length === 1);
|
||||
assert.isTrue(errorResult.length === 1);
|
||||
assert.equal(errorResult[0].code, Diagnostics.Operator_0_cannot_be_applied_to_types_1_and_2.code);
|
||||
});
|
||||
});
|
||||
@@ -4096,7 +4096,7 @@ namespace ts.projectSystem {
|
||||
checkNumberOfInferredProjects(projectService, 1);
|
||||
|
||||
const inferredProject = projectService.inferredProjects[0];
|
||||
assert(inferredProject.containsFile(<server.NormalizedPath>file1.path));
|
||||
assert.isTrue(inferredProject.containsFile(<server.NormalizedPath>file1.path));
|
||||
});
|
||||
|
||||
it("should be able to handle @types if input file list is empty", () => {
|
||||
@@ -4236,7 +4236,7 @@ namespace ts.projectSystem {
|
||||
arguments: { file: f1.path }
|
||||
});
|
||||
checkScriptInfoAndProjects(0, f1.content, "contents of closed file");
|
||||
assert.equal(info.getSnapshot(), snap);
|
||||
assert.strictEqual(info.getSnapshot(), snap);
|
||||
|
||||
// reload from temp file
|
||||
session.executeCommandSeq(<server.protocol.ReloadRequest>{
|
||||
@@ -4244,7 +4244,7 @@ namespace ts.projectSystem {
|
||||
arguments: { file: f1.path, tmpfile: tmp.path }
|
||||
});
|
||||
checkScriptInfoAndProjects(0, tmp.content, "contents of temp file");
|
||||
assert.notEqual(info.getSnapshot(), snap);
|
||||
assert.notStrictEqual(info.getSnapshot(), snap);
|
||||
|
||||
// reload from own file
|
||||
session.executeCommandSeq(<server.protocol.ReloadRequest>{
|
||||
@@ -4252,11 +4252,11 @@ namespace ts.projectSystem {
|
||||
arguments: { file: f1.path }
|
||||
});
|
||||
checkScriptInfoAndProjects(0, f1.content, "contents of closed file");
|
||||
assert.notEqual(info.getSnapshot(), snap);
|
||||
assert.notStrictEqual(info.getSnapshot(), snap);
|
||||
|
||||
function checkScriptInfoAndProjects(inferredProjects: number, contentsOfInfo: string, captionForContents: string) {
|
||||
checkNumberOfProjects(projectService, { inferredProjects });
|
||||
assert.equal(projectService.getScriptInfo(f1.path), info);
|
||||
assert.strictEqual(projectService.getScriptInfo(f1.path), info);
|
||||
checkScriptInfoContents(contentsOfInfo, captionForContents);
|
||||
}
|
||||
|
||||
@@ -4515,7 +4515,7 @@ namespace ts.projectSystem {
|
||||
seq: 2,
|
||||
arguments: { projectFileName: projectName }
|
||||
}).response as ReadonlyArray<protocol.DiagnosticWithLinePosition>;
|
||||
assert(diags.length === 0);
|
||||
assert.isTrue(diags.length === 0);
|
||||
|
||||
session.executeCommand(<server.protocol.SetCompilerOptionsForInferredProjectsRequest>{
|
||||
type: "request",
|
||||
@@ -4529,7 +4529,7 @@ namespace ts.projectSystem {
|
||||
seq: 4,
|
||||
arguments: { projectFileName: projectName }
|
||||
}).response as ReadonlyArray<protocol.DiagnosticWithLinePosition>;
|
||||
assert(diagsAfterUpdate.length === 0);
|
||||
assert.isTrue(diagsAfterUpdate.length === 0);
|
||||
});
|
||||
|
||||
it("for external project", () => {
|
||||
@@ -4556,7 +4556,7 @@ namespace ts.projectSystem {
|
||||
seq: 2,
|
||||
arguments: { projectFileName }
|
||||
}).response as ReadonlyArray<ts.server.protocol.DiagnosticWithLinePosition>;
|
||||
assert(diags.length === 0);
|
||||
assert.isTrue(diags.length === 0);
|
||||
|
||||
session.executeCommand(<server.protocol.OpenExternalProjectRequest>{
|
||||
type: "request",
|
||||
@@ -4574,7 +4574,7 @@ namespace ts.projectSystem {
|
||||
seq: 4,
|
||||
arguments: { projectFileName }
|
||||
}).response as ReadonlyArray<ts.server.protocol.DiagnosticWithLinePosition>;
|
||||
assert(diagsAfterUpdate.length === 0);
|
||||
assert.isTrue(diagsAfterUpdate.length === 0);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -4758,7 +4758,7 @@ namespace ts.projectSystem {
|
||||
isCancellationRequested: () => false,
|
||||
setRequest: requestId => {
|
||||
if (expectedRequestId === undefined) {
|
||||
assert(false, "unexpected call");
|
||||
assert.isTrue(false, "unexpected call");
|
||||
}
|
||||
assert.equal(requestId, expectedRequestId);
|
||||
},
|
||||
@@ -5017,7 +5017,7 @@ namespace ts.projectSystem {
|
||||
);
|
||||
const highlightResponse = session.executeCommand(highlightRequest).response as protocol.OccurrencesResponseItem[];
|
||||
const firstOccurence = highlightResponse[0];
|
||||
assert(firstOccurence.isInString, "Highlights should be marked with isInString");
|
||||
assert.isTrue(firstOccurence.isInString, "Highlights should be marked with isInString");
|
||||
}
|
||||
|
||||
{
|
||||
@@ -5026,7 +5026,7 @@ namespace ts.projectSystem {
|
||||
{ file: file1.path, line: 3, offset: 13 }
|
||||
);
|
||||
const highlightResponse = session.executeCommand(highlightRequest).response as protocol.OccurrencesResponseItem[];
|
||||
assert(highlightResponse.length === 2);
|
||||
assert.isTrue(highlightResponse.length === 2);
|
||||
const firstOccurence = highlightResponse[0];
|
||||
assert.isUndefined(firstOccurence.isInString, "Highlights should not be marked with isInString if on property name");
|
||||
}
|
||||
@@ -5037,7 +5037,7 @@ namespace ts.projectSystem {
|
||||
{ file: file1.path, line: 4, offset: 14 }
|
||||
);
|
||||
const highlightResponse = session.executeCommand(highlightRequest).response as protocol.OccurrencesResponseItem[];
|
||||
assert(highlightResponse.length === 2);
|
||||
assert.isTrue(highlightResponse.length === 2);
|
||||
const firstOccurence = highlightResponse[0];
|
||||
assert.isUndefined(firstOccurence.isInString, "Highlights should not be marked with isInString if on indexer");
|
||||
}
|
||||
@@ -5061,13 +5061,13 @@ namespace ts.projectSystem {
|
||||
|
||||
let project = projectService.inferredProjects[0];
|
||||
let options = project.getCompilationSettings();
|
||||
assert(options.maxNodeModuleJsDepth === 2);
|
||||
assert.isTrue(options.maxNodeModuleJsDepth === 2);
|
||||
|
||||
// Assert the option sticks
|
||||
projectService.setCompilerOptionsForInferredProjects({ target: ScriptTarget.ES2016 });
|
||||
project = projectService.inferredProjects[0];
|
||||
options = project.getCompilationSettings();
|
||||
assert(options.maxNodeModuleJsDepth === 2);
|
||||
assert.isTrue(options.maxNodeModuleJsDepth === 2);
|
||||
});
|
||||
|
||||
it("should return to normal state when all js root files are removed from project", () => {
|
||||
@@ -5090,7 +5090,7 @@ namespace ts.projectSystem {
|
||||
|
||||
projectService.openClientFile(file2.path);
|
||||
project = projectService.inferredProjects[0];
|
||||
assert(project.getCompilationSettings().maxNodeModuleJsDepth === 2);
|
||||
assert.isTrue(project.getCompilationSettings().maxNodeModuleJsDepth === 2);
|
||||
|
||||
projectService.closeClientFile(file2.path);
|
||||
project = projectService.inferredProjects[0];
|
||||
@@ -5134,7 +5134,7 @@ namespace ts.projectSystem {
|
||||
seq: 2,
|
||||
arguments: { file: configFile.path, projectFileName: projectName, includeLinePosition: true }
|
||||
}).response as ReadonlyArray<server.protocol.DiagnosticWithLinePosition>;
|
||||
assert(diags.length === 2);
|
||||
assert.isTrue(diags.length === 2);
|
||||
|
||||
configFile.content = configFileContentWithoutCommentLine;
|
||||
host.reloadFS([file, configFile]);
|
||||
@@ -5145,7 +5145,7 @@ namespace ts.projectSystem {
|
||||
seq: 2,
|
||||
arguments: { file: configFile.path, projectFileName: projectName, includeLinePosition: true }
|
||||
}).response as ReadonlyArray<server.protocol.DiagnosticWithLinePosition>;
|
||||
assert(diagsAfterEdit.length === 2);
|
||||
assert.isTrue(diagsAfterEdit.length === 2);
|
||||
|
||||
verifyDiagnostic(diags[0], diagsAfterEdit[0]);
|
||||
verifyDiagnostic(diags[1], diagsAfterEdit[1]);
|
||||
@@ -5271,7 +5271,7 @@ namespace ts.projectSystem {
|
||||
function verifyCalledOn(callback: CalledMaps, name: string) {
|
||||
const calledMap = calledMaps[callback];
|
||||
const result = calledMap.get(name);
|
||||
assert(result && !!result.length, `${callback} should be called with name: ${name}: ${arrayFrom(calledMap.keys())}`);
|
||||
assert.isTrue(result && !!result.length, `${callback} should be called with name: ${name}: ${arrayFrom(calledMap.keys())}`);
|
||||
}
|
||||
|
||||
function verifyNoCall(callback: CalledMaps) {
|
||||
@@ -5283,7 +5283,7 @@ namespace ts.projectSystem {
|
||||
const calledMap = calledMaps[callback];
|
||||
ts.TestFSWithWatch.verifyMapSize(callback, calledMap, arrayFrom(expectedKeys.keys()));
|
||||
expectedKeys.forEach((called, name) => {
|
||||
assert(calledMap.has(name), `${callback} is expected to contain ${name}, actual keys: ${arrayFrom(calledMap.keys())}`);
|
||||
assert.isTrue(calledMap.has(name), `${callback} is expected to contain ${name}, actual keys: ${arrayFrom(calledMap.keys())}`);
|
||||
assert.equal(calledMap.get(name).length, called, `${callback} is expected to be called ${called} times with ${name}. Actual entry: ${calledMap.get(name)}`);
|
||||
});
|
||||
}
|
||||
@@ -5356,10 +5356,10 @@ namespace ts.projectSystem {
|
||||
try {
|
||||
// trigger synchronization to make sure that LSHost will try to find 'f2' module on disk
|
||||
verifyImportedDiagnostics();
|
||||
assert(false, `should not find file '${imported.path}'`);
|
||||
assert.isTrue(false, `should not find file '${imported.path}'`);
|
||||
}
|
||||
catch (e) {
|
||||
assert(e.message.indexOf(`Could not find file: '${imported.path}'.`) === 0);
|
||||
assert.isTrue(e.message.indexOf(`Could not find file: '${imported.path}'.`) === 0);
|
||||
}
|
||||
const f2Lookups = getLocationsForModuleLookup("f2");
|
||||
callsTrackingHost.verifyCalledOnEachEntryNTimes(CalledMapsWithSingleArg.fileExists, f2Lookups, 1);
|
||||
@@ -5544,7 +5544,7 @@ namespace ts.projectSystem {
|
||||
callsTrackingHost.verifyNoHostCallsExceptFileExistsOnce(["/a/b/models/tsconfig.json", "/a/b/models/jsconfig.json"]);
|
||||
|
||||
checkNumberOfConfiguredProjects(projectService, 1);
|
||||
assert.equal(projectService.configuredProjects.get(tsconfigFile.path), project);
|
||||
assert.strictEqual(projectService.configuredProjects.get(tsconfigFile.path), project);
|
||||
});
|
||||
|
||||
describe("WatchDirectories for config file with", () => {
|
||||
@@ -5631,7 +5631,7 @@ namespace ts.projectSystem {
|
||||
callsTrackingHost.verifyNoCall(CalledMapsWithFiveArgs.readDirectory);
|
||||
|
||||
checkNumberOfConfiguredProjects(projectService, 1);
|
||||
assert.equal(projectService.configuredProjects.get(canonicalConfigPath), project);
|
||||
assert.strictEqual(projectService.configuredProjects.get(canonicalConfigPath), project);
|
||||
verifyProjectAndWatchedDirectories();
|
||||
|
||||
callsTrackingHost.clear();
|
||||
@@ -5640,7 +5640,7 @@ namespace ts.projectSystem {
|
||||
assert.equal(configFile2, configFileName);
|
||||
|
||||
checkNumberOfConfiguredProjects(projectService, 1);
|
||||
assert.equal(projectService.configuredProjects.get(canonicalConfigPath), project);
|
||||
assert.strictEqual(projectService.configuredProjects.get(canonicalConfigPath), project);
|
||||
verifyProjectAndWatchedDirectories();
|
||||
callsTrackingHost.verifyNoHostCalls();
|
||||
|
||||
@@ -5842,7 +5842,7 @@ namespace ts.projectSystem {
|
||||
forEach(actual, f => {
|
||||
assert.isFalse(seen.has(f), `${caption}: Found duplicate ${f}. Actual: ${actual} Expected: ${expected}`);
|
||||
seen.set(f, true);
|
||||
assert(contains(expected, f), `${caption}: Expected not to contain ${f}. Actual: ${actual} Expected: ${expected}`);
|
||||
assert.isTrue(contains(expected, f), `${caption}: Expected not to contain ${f}. Actual: ${actual} Expected: ${expected}`);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -6313,7 +6313,7 @@ namespace ts.projectSystem {
|
||||
else {
|
||||
// file2 addition wont be detected
|
||||
projectFiles.pop();
|
||||
assert(host.fileExists(file2.path));
|
||||
assert.isTrue(host.fileExists(file2.path));
|
||||
}
|
||||
verifyProject();
|
||||
|
||||
@@ -6380,7 +6380,7 @@ namespace ts.projectSystem {
|
||||
assert.equal(projectChangedEvents.length, expectedEvents.length, `Incorrect number of events Actual: ${eventsToString(projectChangedEvents)} Expected: ${eventsToString(expectedEvents)}`);
|
||||
forEach(projectChangedEvents, (actualEvent, i) => {
|
||||
const expectedEvent = expectedEvents[i];
|
||||
assert.equal(actualEvent.eventName, expectedEvent.eventName);
|
||||
assert.strictEqual(actualEvent.eventName, expectedEvent.eventName);
|
||||
verifyFiles("openFiles", actualEvent.data.openFiles, expectedEvent.data.openFiles);
|
||||
});
|
||||
|
||||
|
||||
@@ -323,7 +323,7 @@ namespace ts.projectSystem {
|
||||
typeAcquisition: { enable: true, include: ["jquery"] }
|
||||
});
|
||||
|
||||
assert(enqueueIsCalled, "expected enqueueIsCalled to be true");
|
||||
assert.isTrue(enqueueIsCalled, "expected enqueueIsCalled to be true");
|
||||
installer.installAll(/*expectedCount*/ 1);
|
||||
|
||||
// auto is set in type acquisition - use it even if project contains only .ts files
|
||||
@@ -629,7 +629,7 @@ namespace ts.projectSystem {
|
||||
installer.executePendingCommands();
|
||||
// expected all typings file to exist
|
||||
for (const f of typingFiles) {
|
||||
assert(host.fileExists(f.path), `expected file ${f.path} to exist`);
|
||||
assert.isTrue(host.fileExists(f.path), `expected file ${f.path} to exist`);
|
||||
}
|
||||
host.checkTimeoutQueueLengthAndRun(2);
|
||||
checkNumberOfProjects(projectService, { externalProjects: 1 });
|
||||
@@ -965,8 +965,8 @@ namespace ts.projectSystem {
|
||||
|
||||
installer.installAll(/*expectedCount*/1);
|
||||
|
||||
assert(host.fileExists(node.path), "typings for 'node' should be created");
|
||||
assert(host.fileExists(commander.path), "typings for 'commander' should be created");
|
||||
assert.isTrue(host.fileExists(node.path), "typings for 'node' should be created");
|
||||
assert.isTrue(host.fileExists(commander.path), "typings for 'commander' should be created");
|
||||
|
||||
checkProjectActualFiles(service.inferredProjects[0], [file.path, node.path, commander.path]);
|
||||
});
|
||||
@@ -1009,7 +1009,7 @@ namespace ts.projectSystem {
|
||||
installer.installAll(/*expectedCount*/ 1);
|
||||
});
|
||||
|
||||
it("cached unresolved typings are not recomputed if program structure did not change", () => {
|
||||
it("should recompute resolutions after typings are installed", () => {
|
||||
const host = createServerHost([]);
|
||||
const session = createSession(host);
|
||||
const f = {
|
||||
@@ -1051,7 +1051,7 @@ namespace ts.projectSystem {
|
||||
session.executeCommand(changeRequest);
|
||||
host.checkTimeoutQueueLengthAndRun(2); // This enqueues the updategraph and refresh inferred projects
|
||||
const version2 = proj.getCachedUnresolvedImportsPerFile_TestOnly().getVersion();
|
||||
assert.equal(version1, version2, "set of unresolved imports should not change");
|
||||
assert.notEqual(version1, version2, "set of unresolved imports should change");
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1107,7 +1107,7 @@ namespace ts.projectSystem {
|
||||
projectService.openClientFile(f1.path);
|
||||
|
||||
installer.checkPendingCommands(/*expectedCount*/ 0);
|
||||
assert(messages.indexOf("Package name '; say ‘Hello from TypeScript!’ #' contains non URI safe characters") > 0, "should find package with invalid name");
|
||||
assert.isTrue(messages.indexOf("Package name '; say ‘Hello from TypeScript!’ #' contains non URI safe characters") > 0, "should find package with invalid name");
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1256,7 +1256,7 @@ namespace ts.projectSystem {
|
||||
|
||||
installer.installAll(/*expectedCount*/ 1);
|
||||
|
||||
assert(seenTelemetryEvent);
|
||||
assert.isTrue(seenTelemetryEvent);
|
||||
host.checkTimeoutQueueLengthAndRun(2);
|
||||
checkNumberOfProjects(projectService, { inferredProjects: 1 });
|
||||
checkProjectActualFiles(projectService.inferredProjects[0], [f1.path, commander.path]);
|
||||
@@ -1307,10 +1307,10 @@ namespace ts.projectSystem {
|
||||
|
||||
installer.installAll(/*expectedCount*/ 1);
|
||||
|
||||
assert(!!beginEvent);
|
||||
assert(!!endEvent);
|
||||
assert(beginEvent.eventId === endEvent.eventId);
|
||||
assert(endEvent.installSuccess);
|
||||
assert.isTrue(!!beginEvent);
|
||||
assert.isTrue(!!endEvent);
|
||||
assert.isTrue(beginEvent.eventId === endEvent.eventId);
|
||||
assert.isTrue(endEvent.installSuccess);
|
||||
host.checkTimeoutQueueLengthAndRun(2);
|
||||
checkNumberOfProjects(projectService, { inferredProjects: 1 });
|
||||
checkProjectActualFiles(projectService.inferredProjects[0], [f1.path, commander.path]);
|
||||
@@ -1353,9 +1353,9 @@ namespace ts.projectSystem {
|
||||
|
||||
installer.installAll(/*expectedCount*/ 1);
|
||||
|
||||
assert(!!beginEvent);
|
||||
assert(!!endEvent);
|
||||
assert(beginEvent.eventId === endEvent.eventId);
|
||||
assert.isTrue(!!beginEvent);
|
||||
assert.isTrue(!!endEvent);
|
||||
assert.isTrue(beginEvent.eventId === endEvent.eventId);
|
||||
assert.isFalse(endEvent.installSuccess);
|
||||
checkNumberOfProjects(projectService, { inferredProjects: 1 });
|
||||
checkProjectActualFiles(projectService.inferredProjects[0], [f1.path]);
|
||||
|
||||
@@ -34,7 +34,7 @@ var p:Point=new Point();
|
||||
var q:Point=<Point>p;`;
|
||||
|
||||
const { lines } = server.LineIndex.linesFromText(testContent);
|
||||
assert(lines.length > 0, "Failed to initialize test text. Expected text to have at least one line");
|
||||
assert.isTrue(lines.length > 0, "Failed to initialize test text. Expected text to have at least one line");
|
||||
|
||||
const lineIndex = new server.LineIndex();
|
||||
lineIndex.load(lines);
|
||||
@@ -94,7 +94,7 @@ that was purple at the tips
|
||||
and grew 1cm per day`;
|
||||
|
||||
({ lines, lineMap } = server.LineIndex.linesFromText(testContent));
|
||||
assert(lines.length > 0, "Failed to initialize test text. Expected text to have at least one line");
|
||||
assert.isTrue(lines.length > 0, "Failed to initialize test text. Expected text to have at least one line");
|
||||
|
||||
const lineIndex = new server.LineIndex();
|
||||
lineIndex.load(lines);
|
||||
@@ -203,10 +203,10 @@ and grew 1cm per day`;
|
||||
const testFileName = "src/compiler/scanner.ts";
|
||||
testContent = Harness.IO.readFile(testFileName);
|
||||
const totalChars = testContent.length;
|
||||
assert(totalChars > 0, "Failed to read test file.");
|
||||
assert.isTrue(totalChars > 0, "Failed to read test file.");
|
||||
|
||||
({ lines, lineMap } = server.LineIndex.linesFromText(testContent));
|
||||
assert(lines.length > 0, "Failed to initialize test text. Expected text to have at least one line");
|
||||
assert.isTrue(lines.length > 0, "Failed to initialize test text. Expected text to have at least one line");
|
||||
|
||||
lineIndex = new server.LineIndex();
|
||||
lineIndex.load(lines);
|
||||
|
||||
@@ -139,7 +139,7 @@ interface Array<T> {}`
|
||||
function checkMapKeys(caption: string, map: Map<any>, expectedKeys: ReadonlyArray<string>) {
|
||||
verifyMapSize(caption, map, expectedKeys);
|
||||
for (const name of expectedKeys) {
|
||||
assert(map.has(name), `${caption} is expected to contain ${name}, actual keys: ${arrayFrom(map.keys())}`);
|
||||
assert.isTrue(map.has(name), `${caption} is expected to contain ${name}, actual keys: ${arrayFrom(map.keys())}`);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -867,8 +867,8 @@
|
||||
<Item ItemId=";Add_0_to_existing_import_declaration_from_1_90015" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Add '{0}' to existing import declaration from "{1}"]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[将 {0} 从 {1} 添加到现有导入声明。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[将“{0}”从“{1}”添加到现有导入声明]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Add '{0}' to existing import declaration from "{1}".]]></Val>
|
||||
@@ -879,8 +879,8 @@
|
||||
<Item ItemId=";Add_index_signature_for_property_0_90017" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Add index signature for property '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[为属性“{0}”添加索引签名。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[为属性“{0}”添加索引签名]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Add index signature for property '{0}'.]]></Val>
|
||||
@@ -891,8 +891,8 @@
|
||||
<Item ItemId=";Add_missing_super_call_90001" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Add missing 'super()' call]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[添加缺失的 "super()" 调用。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[添加缺失的 "super()" 调用]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Add missing 'super()' call.]]></Val>
|
||||
@@ -903,8 +903,8 @@
|
||||
<Item ItemId=";Add_this_to_unresolved_variable_90008" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Add 'this.' to unresolved variable]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[向未解析的变量添加 "this."。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[向未解析的变量添加 "this."]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Add 'this.' to unresolved variable.]]></Val>
|
||||
@@ -915,6 +915,9 @@
|
||||
<Item ItemId=";Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript__5068" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Adding a tsconfig.json file will help organize projects that contain both TypeScript and JavaScript files. Learn more at https://aka.ms/tsconfig.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[添加 tsconfig.json 文件有助于组织包含 TypeScript 和 JavaScript 文件的项目。有关详细信息,请访问 https://aka.ms/tsconfig。]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
@@ -1545,8 +1548,8 @@
|
||||
<Item ItemId=";Call_decorator_expression_90028" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Call decorator expression]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[调用修饰器表达式。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[调用修饰器表达式]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Call decorator expression.]]></Val>
|
||||
@@ -1962,8 +1965,8 @@
|
||||
<Item ItemId=";Change_0_to_1_90014" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Change '{0}' to '{1}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[将“{0}”更改为“{1}”。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[将“{0}”更改为“{1}”]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Change '{0}' to '{1}'.]]></Val>
|
||||
@@ -1986,8 +1989,8 @@
|
||||
<Item ItemId=";Change_spelling_to_0_90022" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Change spelling to '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[将拼写更改为“{0}”。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[将拼写更改为“{0}”]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Change spelling to '{0}'.]]></Val>
|
||||
@@ -2364,8 +2367,8 @@
|
||||
<Item ItemId=";Declare_method_0_90023" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Declare method '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[声明方法“{0}”。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[声明方法“{0}”]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Declare method '{0}'.]]></Val>
|
||||
@@ -2376,8 +2379,8 @@
|
||||
<Item ItemId=";Declare_property_0_90016" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Declare property '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[声明属性“{0}”。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[声明属性“{0}”]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Declare property '{0}'.]]></Val>
|
||||
@@ -2388,8 +2391,8 @@
|
||||
<Item ItemId=";Declare_static_method_0_90024" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Declare static method '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[声明静态方法“{0}”。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[声明静态方法“{0}”]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Declare static method '{0}'.]]></Val>
|
||||
@@ -2400,8 +2403,8 @@
|
||||
<Item ItemId=";Declare_static_property_0_90027" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Declare static property '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[声明静态属性 "{0}"。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[声明静态属性“{0}”]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Declare static property '{0}'.]]></Val>
|
||||
@@ -2484,8 +2487,8 @@
|
||||
<Item ItemId=";Disable_checking_for_this_file_90018" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Disable checking for this file]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[禁用检查此文件。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[禁用检查此文件]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Disable checking for this file.]]></Val>
|
||||
@@ -3756,8 +3759,8 @@
|
||||
<Item ItemId=";Ignore_this_error_message_90019" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Ignore this error message]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[忽略此错误信息。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[忽略此错误信息]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Ignore this error message.]]></Val>
|
||||
@@ -3780,8 +3783,8 @@
|
||||
<Item ItemId=";Implement_interface_0_90006" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Implement interface '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[实现接口“{0}”。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[实现接口“{0}”]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Implement interface '{0}'.]]></Val>
|
||||
@@ -3801,8 +3804,8 @@
|
||||
<Item ItemId=";Import_0_from_module_1_90013" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Import '{0}' from module "{1}"]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[从模块“{1}”导入“{0}”。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[从模块“{1}”导入“{0}”]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Import '{0}' from module "{1}".]]></Val>
|
||||
@@ -3954,8 +3957,8 @@
|
||||
<Item ItemId=";Infer_parameter_types_from_usage_95012" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Infer parameter types from usage]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[从用法中推断出参数类型。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[根据使用情况推断参数类型]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Infer parameter types from usage.]]></Val>
|
||||
@@ -3966,8 +3969,8 @@
|
||||
<Item ItemId=";Infer_type_of_0_from_usage_95011" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Infer type of '{0}' from usage]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[从用法中推断出“{0}”的类型。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[根据使用情况推断“{0}”的类型]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Infer type of '{0}' from usage.]]></Val>
|
||||
@@ -3978,8 +3981,8 @@
|
||||
<Item ItemId=";Initialize_property_0_in_the_constructor_90020" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Initialize property '{0}' in the constructor]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[初始化构造函数中的属性“{0}”。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[初始化构造函数中的属性“{0}”]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Initialize property '{0}' in the constructor.]]></Val>
|
||||
@@ -3990,8 +3993,8 @@
|
||||
<Item ItemId=";Initialize_static_property_0_90021" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Initialize static property '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[初始化静态属性“{0}”。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[初始化静态属性“{0}”]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Initialize static property '{0}'.]]></Val>
|
||||
@@ -4527,8 +4530,8 @@
|
||||
<Item ItemId=";Make_super_call_the_first_statement_in_the_constructor_90002" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Make 'super()' call the first statement in the constructor]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[在构造函数中,使 "super()" 调用第一个语句。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[在构造函数中,使 "super()" 调用第一个语句]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Make 'super()' call the first statement in the constructor.]]></Val>
|
||||
@@ -4839,6 +4842,12 @@
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Numeric_separators_are_not_allowed_here_6188" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Numeric separators are not allowed here.]]></Val>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Object_is_possibly_null_2531" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Object is possibly 'null'.]]></Val>
|
||||
@@ -5445,8 +5454,8 @@
|
||||
<Item ItemId=";Prefix_0_with_an_underscore_90025" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Prefix '{0}' with an underscore]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[带下划线的前缀“{0}”。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[带下划线的前缀“{0}”]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Prefix '{0}' with an underscore.]]></Val>
|
||||
@@ -5901,8 +5910,8 @@
|
||||
<Item ItemId=";Remove_declaration_for_Colon_0_90004" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Remove declaration for: '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[删除“{0}”的声明。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[删除“{0}”的声明]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Remove declaration for: '{0}'.]]></Val>
|
||||
@@ -6330,8 +6339,8 @@
|
||||
<Item ItemId=";Rewrite_as_the_indexed_access_type_0_90026" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Rewrite as the indexed access type '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[重写为索引访问类型“{0}”。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[重写为索引访问类型“{0}”]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Rewrite as the indexed access type '{0}'.]]></Val>
|
||||
@@ -6450,6 +6459,9 @@
|
||||
<Item ItemId=";Specify_ECMAScript_target_version_Colon_ES3_default_ES5_ES2015_ES2016_ES2017_ES2018_or_ESNEXT_6015" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017','ES2018' or 'ESNEXT'.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[指定 ECMAScript 目标版本: "ES3" (默认)、"ES5"、"ES2015"、"ES2016"、"ES2017"、"ES2018" 或 "ESNEXT"。]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
@@ -6558,6 +6570,9 @@
|
||||
<Item ItemId=";Starting_compilation_in_watch_mode_6031" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Starting compilation in watch mode...]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[在监视模式下开始编译...]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
@@ -7413,6 +7428,9 @@
|
||||
<Item ItemId=";Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated_2719" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Type '{0}' is not assignable to type '{1}'. Two different types with this name exist, but they are unrelated.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[类型“{0}”无法分配给类型“{1}”。存在具有此名称的两种不同类型,但它们是不相关的。]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
|
||||
@@ -867,8 +867,8 @@
|
||||
<Item ItemId=";Add_0_to_existing_import_declaration_from_1_90015" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Add '{0}' to existing import declaration from "{1}"]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[從 "{1}" 將 '{0}' 新增至現有的匯入宣告。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[從 "{1}" 將 '{0}' 新增至現有的匯入宣告]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Add '{0}' to existing import declaration from "{1}".]]></Val>
|
||||
@@ -879,8 +879,8 @@
|
||||
<Item ItemId=";Add_index_signature_for_property_0_90017" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Add index signature for property '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[為屬性 '{0}' 新增索引簽章。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[為屬性 '{0}' 新增索引簽章]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Add index signature for property '{0}'.]]></Val>
|
||||
@@ -891,8 +891,8 @@
|
||||
<Item ItemId=";Add_missing_super_call_90001" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Add missing 'super()' call]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[新增遺漏的 'super()' 呼叫。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[新增遺漏的 'super()' 呼叫]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Add missing 'super()' call.]]></Val>
|
||||
@@ -903,8 +903,8 @@
|
||||
<Item ItemId=";Add_this_to_unresolved_variable_90008" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Add 'this.' to unresolved variable]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[將 'this.' 新增到未經解析的變數。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[將 'this' 新增至未解析的變數]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Add 'this.' to unresolved variable.]]></Val>
|
||||
@@ -915,6 +915,9 @@
|
||||
<Item ItemId=";Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript__5068" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Adding a tsconfig.json file will help organize projects that contain both TypeScript and JavaScript files. Learn more at https://aka.ms/tsconfig.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[新增 tsconfig.json 檔案有助於組織同時包含 TypeScript 及 JavaScript 檔案的專案。若要深入了解,請前往 https://aka.ms/tsconfig。]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
@@ -1545,8 +1548,8 @@
|
||||
<Item ItemId=";Call_decorator_expression_90028" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Call decorator expression]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[呼叫裝飾項目運算式。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[呼叫裝飾項目運算式]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Call decorator expression.]]></Val>
|
||||
@@ -1962,8 +1965,8 @@
|
||||
<Item ItemId=";Change_0_to_1_90014" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Change '{0}' to '{1}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[將 '{0}' 變更為 '{1}'。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[將 '{0}' 變更為 '{1}']]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Change '{0}' to '{1}'.]]></Val>
|
||||
@@ -1986,8 +1989,8 @@
|
||||
<Item ItemId=";Change_spelling_to_0_90022" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Change spelling to '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[將拼字變更為 '{0}'。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[將拼字變更為 '{0}']]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Change spelling to '{0}'.]]></Val>
|
||||
@@ -2364,8 +2367,8 @@
|
||||
<Item ItemId=";Declare_method_0_90023" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Declare method '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[宣告方法 '{0}'。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[宣告方法 '{0}']]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Declare method '{0}'.]]></Val>
|
||||
@@ -2376,8 +2379,8 @@
|
||||
<Item ItemId=";Declare_property_0_90016" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Declare property '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[宣告屬性 '{0}'。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[宣告屬性 '{0}']]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Declare property '{0}'.]]></Val>
|
||||
@@ -2388,8 +2391,8 @@
|
||||
<Item ItemId=";Declare_static_method_0_90024" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Declare static method '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[宣告靜態方法 '{0}'。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[宣告靜態方法 '{0}']]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Declare static method '{0}'.]]></Val>
|
||||
@@ -2400,8 +2403,8 @@
|
||||
<Item ItemId=";Declare_static_property_0_90027" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Declare static property '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[宣告靜態屬性 '{0}'。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[宣告靜態屬性 '{0}']]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Declare static property '{0}'.]]></Val>
|
||||
@@ -2484,8 +2487,8 @@
|
||||
<Item ItemId=";Disable_checking_for_this_file_90018" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Disable checking for this file]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[停用此檔案的檢查。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[停用此檔案的檢查]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Disable checking for this file.]]></Val>
|
||||
@@ -3756,8 +3759,8 @@
|
||||
<Item ItemId=";Ignore_this_error_message_90019" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Ignore this error message]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[忽略此錯誤訊息。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[略過此錯誤訊息]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Ignore this error message.]]></Val>
|
||||
@@ -3780,8 +3783,8 @@
|
||||
<Item ItemId=";Implement_interface_0_90006" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Implement interface '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[實作介面 '{0}'。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[實作介面 '{0}']]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Implement interface '{0}'.]]></Val>
|
||||
@@ -3801,8 +3804,8 @@
|
||||
<Item ItemId=";Import_0_from_module_1_90013" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Import '{0}' from module "{1}"]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[從模組 "{1}" 匯入 '{0}'。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[從模組 "{1}" 匯入 '{0}']]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Import '{0}' from module "{1}".]]></Val>
|
||||
@@ -3954,8 +3957,8 @@
|
||||
<Item ItemId=";Infer_parameter_types_from_usage_95012" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Infer parameter types from usage]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[從用法推斷參數類型。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[從使用方式推斷參數類型]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Infer parameter types from usage.]]></Val>
|
||||
@@ -3966,8 +3969,8 @@
|
||||
<Item ItemId=";Infer_type_of_0_from_usage_95011" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Infer type of '{0}' from usage]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[從用法推斷 '{0}' 的類型。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[從使用方式推斷 '{0}' 的類型]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Infer type of '{0}' from usage.]]></Val>
|
||||
@@ -3978,8 +3981,8 @@
|
||||
<Item ItemId=";Initialize_property_0_in_the_constructor_90020" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Initialize property '{0}' in the constructor]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[初始化建構函式中的屬性 '{0}'。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[將建構函式中的屬性 '{0}' 初始化]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Initialize property '{0}' in the constructor.]]></Val>
|
||||
@@ -3990,8 +3993,8 @@
|
||||
<Item ItemId=";Initialize_static_property_0_90021" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Initialize static property '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[初始化靜態屬性 '{0}'。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[將靜態屬性 '{0}' 初始化]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Initialize static property '{0}'.]]></Val>
|
||||
@@ -4527,8 +4530,8 @@
|
||||
<Item ItemId=";Make_super_call_the_first_statement_in_the_constructor_90002" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Make 'super()' call the first statement in the constructor]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[使 'super()' 呼叫成為建構函式中的第一個陳述式。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[使 'super()' 呼叫成為建構函式中的第一個陳述式]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Make 'super()' call the first statement in the constructor.]]></Val>
|
||||
@@ -4749,6 +4752,12 @@
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Multiple_consecutive_numeric_separators_are_not_permitted_6189" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Multiple consecutive numeric separators are not permitted.]]></Val>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Multiple_constructor_implementations_are_not_allowed_2392" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Multiple constructor implementations are not allowed.]]></Val>
|
||||
@@ -4839,6 +4848,12 @@
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Numeric_separators_are_not_allowed_here_6188" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Numeric separators are not allowed here.]]></Val>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Object_is_possibly_null_2531" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Object is possibly 'null'.]]></Val>
|
||||
@@ -5445,8 +5460,8 @@
|
||||
<Item ItemId=";Prefix_0_with_an_underscore_90025" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Prefix '{0}' with an underscore]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[有底線的前置詞 '{0}'。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[具有底線的前置詞 '{0}']]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Prefix '{0}' with an underscore.]]></Val>
|
||||
@@ -5901,8 +5916,8 @@
|
||||
<Item ItemId=";Remove_declaration_for_Colon_0_90004" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Remove declaration for: '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[移除 {0} 的宣告。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[移除 '{0}' 的宣告]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Remove declaration for: '{0}'.]]></Val>
|
||||
@@ -6330,8 +6345,8 @@
|
||||
<Item ItemId=";Rewrite_as_the_indexed_access_type_0_90026" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Rewrite as the indexed access type '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[重寫為索引存取類型 '{0}'。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[重寫為索引存取類型 '{0}']]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Rewrite as the indexed access type '{0}'.]]></Val>
|
||||
@@ -6450,6 +6465,9 @@
|
||||
<Item ItemId=";Specify_ECMAScript_target_version_Colon_ES3_default_ES5_ES2015_ES2016_ES2017_ES2018_or_ESNEXT_6015" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017','ES2018' or 'ESNEXT'.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[指定 ECMAScript 目標版本: 'ES3' (預設)、'ES5'、'ES2015'、'ES2016'、'ES2017'、'ES2018' 或 'ESNEXT'。]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
@@ -6558,6 +6576,9 @@
|
||||
<Item ItemId=";Starting_compilation_in_watch_mode_6031" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Starting compilation in watch mode...]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[在監看模式中開始編譯...]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
@@ -7413,6 +7434,9 @@
|
||||
<Item ItemId=";Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated_2719" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Type '{0}' is not assignable to type '{1}'. Two different types with this name exist, but they are unrelated.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[無法將類型 '{0}' 指派給類型 '{1}'。有兩種使用此名稱的不同類型存在,但彼此並不相關。]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
|
||||
@@ -876,8 +876,8 @@
|
||||
<Item ItemId=";Add_0_to_existing_import_declaration_from_1_90015" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Add '{0}' to existing import declaration from "{1}"]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Přidá {0} k existující deklaraci importu z {1}.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Přidat {0} k existující deklaraci importu z {1}]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Add '{0}' to existing import declaration from "{1}".]]></Val>
|
||||
@@ -888,7 +888,7 @@
|
||||
<Item ItemId=";Add_index_signature_for_property_0_90017" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Add index signature for property '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Přidat signaturu indexu pro vlastnost {0}]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
@@ -900,8 +900,8 @@
|
||||
<Item ItemId=";Add_missing_super_call_90001" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Add missing 'super()' call]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Přidejte chybějící volání metody super().]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Přidat chybějící volání metody super()]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Add missing 'super()' call.]]></Val>
|
||||
@@ -912,8 +912,8 @@
|
||||
<Item ItemId=";Add_this_to_unresolved_variable_90008" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Add 'this.' to unresolved variable]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Přidejte k nerozpoznané proměnné this.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Přidat k nerozpoznané proměnné this.]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Add 'this.' to unresolved variable.]]></Val>
|
||||
@@ -924,6 +924,9 @@
|
||||
<Item ItemId=";Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript__5068" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Adding a tsconfig.json file will help organize projects that contain both TypeScript and JavaScript files. Learn more at https://aka.ms/tsconfig.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Přidání souboru tsconfig.json vám pomůže uspořádat projekty, které obsahují jak soubory TypeScript, tak soubory JavaScript. Další informace najdete na adrese https://aka.ms/tsconfig.]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
@@ -1554,8 +1557,8 @@
|
||||
<Item ItemId=";Call_decorator_expression_90028" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Call decorator expression]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Výraz pro volání dekoratéru]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Zavolat výraz dekorátoru]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Call decorator expression.]]></Val>
|
||||
@@ -1971,7 +1974,7 @@
|
||||
<Item ItemId=";Change_0_to_1_90014" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Change '{0}' to '{1}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Změnit {0} na {1}]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
@@ -1995,7 +1998,7 @@
|
||||
<Item ItemId=";Change_spelling_to_0_90022" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Change spelling to '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Změnit pravopis na {0}]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
@@ -2373,8 +2376,8 @@
|
||||
<Item ItemId=";Declare_method_0_90023" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Declare method '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Deklarujte metodu {0}.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Deklarovat metodu {0}]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Declare method '{0}'.]]></Val>
|
||||
@@ -2385,8 +2388,8 @@
|
||||
<Item ItemId=";Declare_property_0_90016" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Declare property '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Deklarujte vlastnost {0}.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Deklarovat vlastnost {0}]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Declare property '{0}'.]]></Val>
|
||||
@@ -2397,8 +2400,8 @@
|
||||
<Item ItemId=";Declare_static_method_0_90024" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Declare static method '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Deklarujte statickou metodu {0}.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Deklarovat statickou metodu {0}]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Declare static method '{0}'.]]></Val>
|
||||
@@ -2409,8 +2412,8 @@
|
||||
<Item ItemId=";Declare_static_property_0_90027" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Declare static property '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Deklarujte statickou vlastnost {0}.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Deklarovat statickou vlastnost {0}]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Declare static property '{0}'.]]></Val>
|
||||
@@ -2493,7 +2496,7 @@
|
||||
<Item ItemId=";Disable_checking_for_this_file_90018" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Disable checking for this file]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Zakázat kontrolu tohoto souboru]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
@@ -3765,7 +3768,7 @@
|
||||
<Item ItemId=";Ignore_this_error_message_90019" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Ignore this error message]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Ignorovat tuto chybovou zprávu]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
@@ -3789,8 +3792,8 @@
|
||||
<Item ItemId=";Implement_interface_0_90006" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Implement interface '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Implementujte rozhraní {0}.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Implementovat rozhraní {0}]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Implement interface '{0}'.]]></Val>
|
||||
@@ -3810,8 +3813,8 @@
|
||||
<Item ItemId=";Import_0_from_module_1_90013" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Import '{0}' from module "{1}"]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Import {0} z modulu {1}]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Importovat {0} z modulu {1}]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Import '{0}' from module "{1}".]]></Val>
|
||||
@@ -3963,8 +3966,8 @@
|
||||
<Item ItemId=";Infer_parameter_types_from_usage_95012" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Infer parameter types from usage]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Odvodit typy parametrů z používání]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Odvodit typy parametrů z využití]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Infer parameter types from usage.]]></Val>
|
||||
@@ -3975,8 +3978,8 @@
|
||||
<Item ItemId=";Infer_type_of_0_from_usage_95011" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Infer type of '{0}' from usage]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Odvodit typ {0} z používání]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Odvodit typ {0} z využití]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Infer type of '{0}' from usage.]]></Val>
|
||||
@@ -3987,7 +3990,7 @@
|
||||
<Item ItemId=";Initialize_property_0_in_the_constructor_90020" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Initialize property '{0}' in the constructor]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Inicializovat vlastnost {0} v konstruktoru]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
@@ -3999,7 +4002,7 @@
|
||||
<Item ItemId=";Initialize_static_property_0_90021" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Initialize static property '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Inicializovat statickou vlastnost {0}]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
@@ -4536,7 +4539,7 @@
|
||||
<Item ItemId=";Make_super_call_the_first_statement_in_the_constructor_90002" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Make 'super()' call the first statement in the constructor]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Nastavit volání metody super() jako první příkaz v konstruktoru]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
@@ -4758,6 +4761,12 @@
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Multiple_consecutive_numeric_separators_are_not_permitted_6189" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Multiple consecutive numeric separators are not permitted.]]></Val>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Multiple_constructor_implementations_are_not_allowed_2392" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Multiple constructor implementations are not allowed.]]></Val>
|
||||
@@ -4848,6 +4857,12 @@
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Numeric_separators_are_not_allowed_here_6188" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Numeric separators are not allowed here.]]></Val>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Object_is_possibly_null_2531" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Object is possibly 'null'.]]></Val>
|
||||
@@ -5454,7 +5469,7 @@
|
||||
<Item ItemId=";Prefix_0_with_an_underscore_90025" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Prefix '{0}' with an underscore]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Předpona {0} s podtržítkem]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
@@ -5910,8 +5925,8 @@
|
||||
<Item ItemId=";Remove_declaration_for_Colon_0_90004" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Remove declaration for: '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Odeberte deklaraci pro {0}.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Odebrat deklaraci pro {0}]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Remove declaration for: '{0}'.]]></Val>
|
||||
@@ -6339,8 +6354,8 @@
|
||||
<Item ItemId=";Rewrite_as_the_indexed_access_type_0_90026" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Rewrite as the indexed access type '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Proveďte přepis jako indexovaný přístupový typ {0}.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Přepsat jako indexovaný typ přístupu {0}]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Rewrite as the indexed access type '{0}'.]]></Val>
|
||||
@@ -6459,6 +6474,9 @@
|
||||
<Item ItemId=";Specify_ECMAScript_target_version_Colon_ES3_default_ES5_ES2015_ES2016_ES2017_ES2018_or_ESNEXT_6015" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017','ES2018' or 'ESNEXT'.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Zadejte cílovou verzi ECMAScriptu: ES3 (výchozí), ES5, ES2015, ES2016, ES2017, ES2018 nebo ESNEXT.]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
@@ -6567,6 +6585,9 @@
|
||||
<Item ItemId=";Starting_compilation_in_watch_mode_6031" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Starting compilation in watch mode...]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Spouští se kompilace v režimu sledování...]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
@@ -7422,6 +7443,9 @@
|
||||
<Item ItemId=";Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated_2719" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Type '{0}' is not assignable to type '{1}'. Two different types with this name exist, but they are unrelated.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Typ {0} se nedá přiřadit typu {1}. Existují dva různé typy s tímto názvem, ale nesouvisí spolu.]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
|
||||
@@ -864,8 +864,8 @@
|
||||
<Item ItemId=";Add_0_to_existing_import_declaration_from_1_90015" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Add '{0}' to existing import declaration from "{1}"]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Fügen Sie "{0}" zur vorhandenen Importdeklaration aus "{1}" hinzu.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA["{0}" der vorhandenen Importdeklaration aus "{1}" hinzufügen]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Add '{0}' to existing import declaration from "{1}".]]></Val>
|
||||
@@ -876,8 +876,8 @@
|
||||
<Item ItemId=";Add_index_signature_for_property_0_90017" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Add index signature for property '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Indexsignatur für die Eigenschaft "{0}" hinzufügen.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Indexsignatur für die Eigenschaft "{0}" hinzufügen]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Add index signature for property '{0}'.]]></Val>
|
||||
@@ -888,8 +888,8 @@
|
||||
<Item ItemId=";Add_missing_super_call_90001" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Add missing 'super()' call]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Fügen Sie den fehlenden super()-Aufruf hinzu.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Fehlenden super()-Aufruf hinzufügen]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Add missing 'super()' call.]]></Val>
|
||||
@@ -900,8 +900,8 @@
|
||||
<Item ItemId=";Add_this_to_unresolved_variable_90008" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Add 'this.' to unresolved variable]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Der nicht aufgelösten Variablen "this." hinzufügen.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Der nicht aufgelösten Variablen "this." hinzufügen]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Add 'this.' to unresolved variable.]]></Val>
|
||||
@@ -912,6 +912,9 @@
|
||||
<Item ItemId=";Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript__5068" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Adding a tsconfig.json file will help organize projects that contain both TypeScript and JavaScript files. Learn more at https://aka.ms/tsconfig.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Das Hinzufügen einer "tsconfig.json"-Datei erleichtert die Organisation von Projekten, die sowohl TypeScript- als auch JavaScript-Dateien enthalten. Weitere Informationen finden Sie unter https://aka.ms/tsconfig.]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
@@ -1542,8 +1545,8 @@
|
||||
<Item ItemId=";Call_decorator_expression_90028" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Call decorator expression]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Rufen Sie den Decoratorausdruck auf.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Decorator-Ausdruck aufrufen]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Call decorator expression.]]></Val>
|
||||
@@ -1959,8 +1962,8 @@
|
||||
<Item ItemId=";Change_0_to_1_90014" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Change '{0}' to '{1}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Ändern Sie "{0}" in "{1}".]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA["{0}" in "{1}" ändern]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Change '{0}' to '{1}'.]]></Val>
|
||||
@@ -1983,8 +1986,8 @@
|
||||
<Item ItemId=";Change_spelling_to_0_90022" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Change spelling to '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Ändern Sie die Schreibweise in "{0}".]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Schreibweise in "{0}" ändern]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Change spelling to '{0}'.]]></Val>
|
||||
@@ -2361,8 +2364,8 @@
|
||||
<Item ItemId=";Declare_method_0_90023" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Declare method '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Methode "{0}" deklarieren.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Methode "{0}" deklarieren]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Declare method '{0}'.]]></Val>
|
||||
@@ -2373,8 +2376,8 @@
|
||||
<Item ItemId=";Declare_property_0_90016" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Declare property '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Eigenschaft "{0}" deklarieren.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Eigenschaft "{0}" deklarieren]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Declare property '{0}'.]]></Val>
|
||||
@@ -2385,8 +2388,8 @@
|
||||
<Item ItemId=";Declare_static_method_0_90024" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Declare static method '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Statische Methode "{0}" deklarieren.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Statische Methode "{0}" deklarieren]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Declare static method '{0}'.]]></Val>
|
||||
@@ -2397,8 +2400,8 @@
|
||||
<Item ItemId=";Declare_static_property_0_90027" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Declare static property '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Deklarieren Sie die statische Eigenschaft "{0}".]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Statische Eigenschaft "{0}" deklarieren]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Declare static property '{0}'.]]></Val>
|
||||
@@ -2481,8 +2484,8 @@
|
||||
<Item ItemId=";Disable_checking_for_this_file_90018" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Disable checking for this file]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Überprüfung für diese Datei deaktivieren.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Überprüfung für diese Datei deaktivieren]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Disable checking for this file.]]></Val>
|
||||
@@ -3753,8 +3756,8 @@
|
||||
<Item ItemId=";Ignore_this_error_message_90019" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Ignore this error message]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Diese Fehlermeldung ignorieren.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Diese Fehlermeldung ignorieren]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Ignore this error message.]]></Val>
|
||||
@@ -3777,7 +3780,7 @@
|
||||
<Item ItemId=";Implement_interface_0_90006" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Implement interface '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Schnittstelle "{0}" implementieren]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
@@ -3798,8 +3801,8 @@
|
||||
<Item ItemId=";Import_0_from_module_1_90013" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Import '{0}' from module "{1}"]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Import von "{0}" aus Modul "{1}".]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA["{0}" aus dem Modul "{1}" importieren]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Import '{0}' from module "{1}".]]></Val>
|
||||
@@ -3951,8 +3954,8 @@
|
||||
<Item ItemId=";Infer_parameter_types_from_usage_95012" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Infer parameter types from usage]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Leiten Sie Parametertypen aus der Nutzung ab.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Parametertypen aus der Nutzung ableiten]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Infer parameter types from usage.]]></Val>
|
||||
@@ -3963,8 +3966,8 @@
|
||||
<Item ItemId=";Infer_type_of_0_from_usage_95011" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Infer type of '{0}' from usage]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Leiten Sie den Typ von "{0}" aus der Nutzung ab.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Typ von "{0}" aus der Nutzung ableiten]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Infer type of '{0}' from usage.]]></Val>
|
||||
@@ -3975,8 +3978,8 @@
|
||||
<Item ItemId=";Initialize_property_0_in_the_constructor_90020" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Initialize property '{0}' in the constructor]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Eigenschaft '{0}' im Konstruktor initialisieren.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Eigenschaft "{0}" im Konstruktor initialisieren]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Initialize property '{0}' in the constructor.]]></Val>
|
||||
@@ -3987,8 +3990,8 @@
|
||||
<Item ItemId=";Initialize_static_property_0_90021" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Initialize static property '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Statische Eigenschaft '{0}' initialisieren.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Statische Eigenschaft "{0}" initialisieren]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Initialize static property '{0}'.]]></Val>
|
||||
@@ -4524,8 +4527,8 @@
|
||||
<Item ItemId=";Make_super_call_the_first_statement_in_the_constructor_90002" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Make 'super()' call the first statement in the constructor]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Legen Sie den super()-Aufruf als erste Anweisung im Konstruktor fest.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[super()-Aufruf als erste Anweisung im Konstruktor festlegen]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Make 'super()' call the first statement in the constructor.]]></Val>
|
||||
@@ -4746,6 +4749,12 @@
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Multiple_consecutive_numeric_separators_are_not_permitted_6189" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Multiple consecutive numeric separators are not permitted.]]></Val>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Multiple_constructor_implementations_are_not_allowed_2392" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Multiple constructor implementations are not allowed.]]></Val>
|
||||
@@ -4836,6 +4845,12 @@
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Numeric_separators_are_not_allowed_here_6188" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Numeric separators are not allowed here.]]></Val>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Object_is_possibly_null_2531" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Object is possibly 'null'.]]></Val>
|
||||
@@ -5439,8 +5454,8 @@
|
||||
<Item ItemId=";Prefix_0_with_an_underscore_90025" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Prefix '{0}' with an underscore]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Präfix "{0}" mit einem Unterstrich.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA["{0}" einen Unterstrich voranstellen]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Prefix '{0}' with an underscore.]]></Val>
|
||||
@@ -5895,7 +5910,7 @@
|
||||
<Item ItemId=";Remove_declaration_for_Colon_0_90004" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Remove declaration for: '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Deklaration entfernen für: {0}]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
@@ -6321,8 +6336,8 @@
|
||||
<Item ItemId=";Rewrite_as_the_indexed_access_type_0_90026" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Rewrite as the indexed access type '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Als indizierten Zugriffstyp "{0}" neu schreiben.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Als indizierten Zugriffstyp "{0}" neu schreiben]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Rewrite as the indexed access type '{0}'.]]></Val>
|
||||
@@ -6441,6 +6456,9 @@
|
||||
<Item ItemId=";Specify_ECMAScript_target_version_Colon_ES3_default_ES5_ES2015_ES2016_ES2017_ES2018_or_ESNEXT_6015" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017','ES2018' or 'ESNEXT'.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[ECMAScript-Zielversion angeben: ES3 (Standard), ES5, ES2015, ES2016, ES2017, ES2018 oder ESNEXT.]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
@@ -6549,6 +6567,9 @@
|
||||
<Item ItemId=";Starting_compilation_in_watch_mode_6031" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Starting compilation in watch mode...]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Kompilierung im Überwachungsmodus wird gestartet...]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
@@ -7404,6 +7425,9 @@
|
||||
<Item ItemId=";Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated_2719" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Type '{0}' is not assignable to type '{1}'. Two different types with this name exist, but they are unrelated.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Der Typ "{0}" kann dem Typ "{1}" nicht zugewiesen werden. Es sind zwei verschiedene Typen mit diesem Namen vorhanden, diese sind jedoch nicht verwandt.]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
|
||||
@@ -876,8 +876,8 @@
|
||||
<Item ItemId=";Add_0_to_existing_import_declaration_from_1_90015" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Add '{0}' to existing import declaration from "{1}"]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Agregue "{0}" a una declaración de importación existente desde "{1}".]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Agregar "{0}" a una declaración de importación existente desde "{1}"]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Add '{0}' to existing import declaration from "{1}".]]></Val>
|
||||
@@ -888,8 +888,8 @@
|
||||
<Item ItemId=";Add_index_signature_for_property_0_90017" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Add index signature for property '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Agregue una firma de índice para la propiedad "{0}".]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Agregar una signatura de índice para la propiedad "{0}"]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Add index signature for property '{0}'.]]></Val>
|
||||
@@ -900,8 +900,8 @@
|
||||
<Item ItemId=";Add_missing_super_call_90001" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Add missing 'super()' call]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Agregue la llamada a "super()" que falta.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Agregar la llamada a "super()" que falta]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Add missing 'super()' call.]]></Val>
|
||||
@@ -912,8 +912,8 @@
|
||||
<Item ItemId=";Add_this_to_unresolved_variable_90008" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Add 'this.' to unresolved variable]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Agrega "this." a una variable no resuelta.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Agregar "this." a una variable no resuelta]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Add 'this.' to unresolved variable.]]></Val>
|
||||
@@ -924,6 +924,9 @@
|
||||
<Item ItemId=";Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript__5068" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Adding a tsconfig.json file will help organize projects that contain both TypeScript and JavaScript files. Learn more at https://aka.ms/tsconfig.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Agregar un archivo tsconfig.json ayuda a organizar los proyectos que contienen archivos TypeScript y JavaScript. Más información en https://aka.ms/tsconfig.]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
@@ -1554,8 +1557,8 @@
|
||||
<Item ItemId=";Call_decorator_expression_90028" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Call decorator expression]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Llame a la expresión decorador.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Llamar a la expresión decorador]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Call decorator expression.]]></Val>
|
||||
@@ -1971,8 +1974,8 @@
|
||||
<Item ItemId=";Change_0_to_1_90014" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Change '{0}' to '{1}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Cambie "{0}" a "{1}".]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Cambiar "{0}" a "{1}"]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Change '{0}' to '{1}'.]]></Val>
|
||||
@@ -1995,8 +1998,8 @@
|
||||
<Item ItemId=";Change_spelling_to_0_90022" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Change spelling to '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Cambiar la ortografía a "{0}".]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Cambiar la ortografía a "{0}"]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Change spelling to '{0}'.]]></Val>
|
||||
@@ -2373,8 +2376,8 @@
|
||||
<Item ItemId=";Declare_method_0_90023" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Declare method '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Declare el método "{0}".]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Declarar el método "{0}"]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Declare method '{0}'.]]></Val>
|
||||
@@ -2385,8 +2388,8 @@
|
||||
<Item ItemId=";Declare_property_0_90016" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Declare property '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Declare la propiedad "{0}".]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Declarar la propiedad "{0}"]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Declare property '{0}'.]]></Val>
|
||||
@@ -2397,8 +2400,8 @@
|
||||
<Item ItemId=";Declare_static_method_0_90024" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Declare static method '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Declare el método estático "{0}".]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Declarar el método estático "{0}"]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Declare static method '{0}'.]]></Val>
|
||||
@@ -2409,8 +2412,8 @@
|
||||
<Item ItemId=";Declare_static_property_0_90027" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Declare static property '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Declare la propiedad "{0}" estática.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Declarar la propiedad estática "{0}"]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Declare static property '{0}'.]]></Val>
|
||||
@@ -2493,8 +2496,8 @@
|
||||
<Item ItemId=";Disable_checking_for_this_file_90018" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Disable checking for this file]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Deshabilite la comprobación para este archivo.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Deshabilitar la comprobación para este archivo]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Disable checking for this file.]]></Val>
|
||||
@@ -3765,8 +3768,8 @@
|
||||
<Item ItemId=";Ignore_this_error_message_90019" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Ignore this error message]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Ignore este mensaje de error.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Ignorar este mensaje de error]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Ignore this error message.]]></Val>
|
||||
@@ -3789,8 +3792,8 @@
|
||||
<Item ItemId=";Implement_interface_0_90006" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Implement interface '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Implementar interfaz "{0}".]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Implementar la interfaz "{0}"]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Implement interface '{0}'.]]></Val>
|
||||
@@ -3810,8 +3813,8 @@
|
||||
<Item ItemId=";Import_0_from_module_1_90013" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Import '{0}' from module "{1}"]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Importar "{0}" desde el módulo "{1}".]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Importar "{0}" desde el módulo "{1}"]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Import '{0}' from module "{1}".]]></Val>
|
||||
@@ -3963,8 +3966,8 @@
|
||||
<Item ItemId=";Infer_parameter_types_from_usage_95012" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Infer parameter types from usage]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Infiera los tipos de parámetro del uso.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Deducir los tipos de parámetro del uso]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Infer parameter types from usage.]]></Val>
|
||||
@@ -3975,8 +3978,8 @@
|
||||
<Item ItemId=";Infer_type_of_0_from_usage_95011" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Infer type of '{0}' from usage]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Infiera el tipo de "{0}" del uso.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Deducir el tipo de "{0}" del uso]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Infer type of '{0}' from usage.]]></Val>
|
||||
@@ -3987,8 +3990,8 @@
|
||||
<Item ItemId=";Initialize_property_0_in_the_constructor_90020" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Initialize property '{0}' in the constructor]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Inicialice la propiedad "{0}" en el constructor.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Inicializar la propiedad "{0}" en el constructor]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Initialize property '{0}' in the constructor.]]></Val>
|
||||
@@ -3999,8 +4002,8 @@
|
||||
<Item ItemId=";Initialize_static_property_0_90021" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Initialize static property '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Inicialice la propiedad estática "{0}".]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Inicializar la propiedad estática "{0}"]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Initialize static property '{0}'.]]></Val>
|
||||
@@ -4536,8 +4539,8 @@
|
||||
<Item ItemId=";Make_super_call_the_first_statement_in_the_constructor_90002" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Make 'super()' call the first statement in the constructor]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Haga que la llamada a "super()" sea la primera instrucción del constructor.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Hacer que la llamada a "super()" sea la primera instrucción del constructor]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Make 'super()' call the first statement in the constructor.]]></Val>
|
||||
@@ -4758,6 +4761,12 @@
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Multiple_consecutive_numeric_separators_are_not_permitted_6189" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Multiple consecutive numeric separators are not permitted.]]></Val>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Multiple_constructor_implementations_are_not_allowed_2392" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Multiple constructor implementations are not allowed.]]></Val>
|
||||
@@ -4848,6 +4857,12 @@
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Numeric_separators_are_not_allowed_here_6188" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Numeric separators are not allowed here.]]></Val>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Object_is_possibly_null_2531" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Object is possibly 'null'.]]></Val>
|
||||
@@ -5454,8 +5469,8 @@
|
||||
<Item ItemId=";Prefix_0_with_an_underscore_90025" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Prefix '{0}' with an underscore]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Prefijo '{0}' con guion bajo.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Prefijo "{0}" con guion bajo]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Prefix '{0}' with an underscore.]]></Val>
|
||||
@@ -5910,8 +5925,8 @@
|
||||
<Item ItemId=";Remove_declaration_for_Colon_0_90004" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Remove declaration for: '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Quitar declaración de: "{0}".]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Quitar declaración de: "{0}"]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Remove declaration for: '{0}'.]]></Val>
|
||||
@@ -6339,8 +6354,8 @@
|
||||
<Item ItemId=";Rewrite_as_the_indexed_access_type_0_90026" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Rewrite as the indexed access type '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Reescribir como el tipo de acceso indexado "{0}".]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Reescribir como tipo de acceso indexado "{0}"]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Rewrite as the indexed access type '{0}'.]]></Val>
|
||||
@@ -6459,6 +6474,9 @@
|
||||
<Item ItemId=";Specify_ECMAScript_target_version_Colon_ES3_default_ES5_ES2015_ES2016_ES2017_ES2018_or_ESNEXT_6015" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017','ES2018' or 'ESNEXT'.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Especifique la versión de ECMAScript de destino: "ES3" (valor predeterminado), "ES5", "ES2015", "ES2016", "ES2017", "ES2018" o "ESNEXT".]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
@@ -6567,6 +6585,9 @@
|
||||
<Item ItemId=";Starting_compilation_in_watch_mode_6031" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Starting compilation in watch mode...]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Iniciando la compilación en modo de inspección...]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
@@ -7422,6 +7443,9 @@
|
||||
<Item ItemId=";Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated_2719" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Type '{0}' is not assignable to type '{1}'. Two different types with this name exist, but they are unrelated.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[El tipo "{0}" no se puede asignar al tipo "{1}". Existen dos tipos distintos con este nombre, pero no están relacionados.]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
|
||||
@@ -876,8 +876,8 @@
|
||||
<Item ItemId=";Add_0_to_existing_import_declaration_from_1_90015" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Add '{0}' to existing import declaration from "{1}"]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Ajoutez '{0}' à une déclaration d'importation existante à partir de "{1}".]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Ajouter '{0}' à la déclaration d'importation existante de "{1}"]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Add '{0}' to existing import declaration from "{1}".]]></Val>
|
||||
@@ -888,8 +888,8 @@
|
||||
<Item ItemId=";Add_index_signature_for_property_0_90017" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Add index signature for property '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Ajoutez une signature d'index pour la propriété '{0}'.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Ajouter une signature d'index pour la propriété '{0}']]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Add index signature for property '{0}'.]]></Val>
|
||||
@@ -900,8 +900,8 @@
|
||||
<Item ItemId=";Add_missing_super_call_90001" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Add missing 'super()' call]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Ajoutez l'appel manquant à 'super()'.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Ajouter l'appel manquant à 'super()']]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Add missing 'super()' call.]]></Val>
|
||||
@@ -912,8 +912,8 @@
|
||||
<Item ItemId=";Add_this_to_unresolved_variable_90008" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Add 'this.' to unresolved variable]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Ajoutez 'this.' à la variable non résolue.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Ajouter 'this.' à la variable non résolue]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Add 'this.' to unresolved variable.]]></Val>
|
||||
@@ -924,6 +924,9 @@
|
||||
<Item ItemId=";Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript__5068" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Adding a tsconfig.json file will help organize projects that contain both TypeScript and JavaScript files. Learn more at https://aka.ms/tsconfig.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[L'ajout d'un fichier tsconfig.json permet d'organiser les projets qui contiennent des fichiers TypeScript et JavaScript. En savoir plus sur https://aka.ms/tsconfig.]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
@@ -1554,8 +1557,8 @@
|
||||
<Item ItemId=";Call_decorator_expression_90028" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Call decorator expression]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Appelez l'expression de l'élément décoratif.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Appeler l'expression de l'élément décoratif]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Call decorator expression.]]></Val>
|
||||
@@ -1971,8 +1974,8 @@
|
||||
<Item ItemId=";Change_0_to_1_90014" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Change '{0}' to '{1}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Changez '{0}' en '{1}'.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Changer '{0}' en '{1}']]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Change '{0}' to '{1}'.]]></Val>
|
||||
@@ -1995,8 +1998,8 @@
|
||||
<Item ItemId=";Change_spelling_to_0_90022" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Change spelling to '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Changez l'orthographe en '{0}'.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Changer l'orthographe en '{0}']]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Change spelling to '{0}'.]]></Val>
|
||||
@@ -2373,8 +2376,8 @@
|
||||
<Item ItemId=";Declare_method_0_90023" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Declare method '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Déclarez la méthode '{0}'.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Déclarer la méthode '{0}']]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Declare method '{0}'.]]></Val>
|
||||
@@ -2385,8 +2388,8 @@
|
||||
<Item ItemId=";Declare_property_0_90016" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Declare property '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Déclarez la propriété '{0}'.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Déclarer la propriété '{0}']]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Declare property '{0}'.]]></Val>
|
||||
@@ -2397,8 +2400,8 @@
|
||||
<Item ItemId=";Declare_static_method_0_90024" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Declare static method '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Déclarez la méthode statique '{0}'.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Déclarer la méthode statique '{0}']]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Declare static method '{0}'.]]></Val>
|
||||
@@ -2409,8 +2412,8 @@
|
||||
<Item ItemId=";Declare_static_property_0_90027" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Declare static property '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Déclarez la propriété statique '{0}'.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Déclarer la propriété statique '{0}']]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Declare static property '{0}'.]]></Val>
|
||||
@@ -2493,8 +2496,8 @@
|
||||
<Item ItemId=";Disable_checking_for_this_file_90018" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Disable checking for this file]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Désactivez la vérification de ce fichier.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Désactiver la vérification de ce fichier]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Disable checking for this file.]]></Val>
|
||||
@@ -3765,8 +3768,8 @@
|
||||
<Item ItemId=";Ignore_this_error_message_90019" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Ignore this error message]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Ignorez ce message d'erreur.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Ignorer ce message d'erreur]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Ignore this error message.]]></Val>
|
||||
@@ -3789,8 +3792,8 @@
|
||||
<Item ItemId=";Implement_interface_0_90006" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Implement interface '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Implémentez l'interface '{0}'.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Implémenter l'interface '{0}']]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Implement interface '{0}'.]]></Val>
|
||||
@@ -3810,8 +3813,8 @@
|
||||
<Item ItemId=";Import_0_from_module_1_90013" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Import '{0}' from module "{1}"]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Importez '{0}' à partir du module "{1}".]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Importer '{0}' à partir du module "{1}"]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Import '{0}' from module "{1}".]]></Val>
|
||||
@@ -3963,8 +3966,8 @@
|
||||
<Item ItemId=";Infer_parameter_types_from_usage_95012" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Infer parameter types from usage]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Déduisez les types des paramètres à partir de l'utilisation.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Déduire les types des paramètres à partir de l'utilisation]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Infer parameter types from usage.]]></Val>
|
||||
@@ -3975,8 +3978,8 @@
|
||||
<Item ItemId=";Infer_type_of_0_from_usage_95011" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Infer type of '{0}' from usage]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Déduisez le type de '{0}' à partir de l'utilisation.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Déduire le type de '{0}' à partir de l'utilisation]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Infer type of '{0}' from usage.]]></Val>
|
||||
@@ -3987,8 +3990,8 @@
|
||||
<Item ItemId=";Initialize_property_0_in_the_constructor_90020" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Initialize property '{0}' in the constructor]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Initialisez la propriété '{0}' dans le constructeur.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Initialiser la propriété '{0}' dans le constructeur]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Initialize property '{0}' in the constructor.]]></Val>
|
||||
@@ -3999,8 +4002,8 @@
|
||||
<Item ItemId=";Initialize_static_property_0_90021" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Initialize static property '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Initialisez la propriété statique '{0}'.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Initialiser la propriété statique '{0}']]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Initialize static property '{0}'.]]></Val>
|
||||
@@ -4536,8 +4539,8 @@
|
||||
<Item ItemId=";Make_super_call_the_first_statement_in_the_constructor_90002" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Make 'super()' call the first statement in the constructor]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Faites de l'appel à 'super()' la première instruction du constructeur.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Faire de l'appel à 'super()' la première instruction du constructeur]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Make 'super()' call the first statement in the constructor.]]></Val>
|
||||
@@ -4758,6 +4761,12 @@
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Multiple_consecutive_numeric_separators_are_not_permitted_6189" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Multiple consecutive numeric separators are not permitted.]]></Val>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Multiple_constructor_implementations_are_not_allowed_2392" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Multiple constructor implementations are not allowed.]]></Val>
|
||||
@@ -4848,6 +4857,12 @@
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Numeric_separators_are_not_allowed_here_6188" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Numeric separators are not allowed here.]]></Val>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Object_is_possibly_null_2531" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Object is possibly 'null'.]]></Val>
|
||||
@@ -5454,8 +5469,8 @@
|
||||
<Item ItemId=";Prefix_0_with_an_underscore_90025" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Prefix '{0}' with an underscore]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Préfixez '{0}' avec un trait de soulignement.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Faire précéder '{0}' d'un trait de soulignement]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Prefix '{0}' with an underscore.]]></Val>
|
||||
@@ -5910,8 +5925,8 @@
|
||||
<Item ItemId=";Remove_declaration_for_Colon_0_90004" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Remove declaration for: '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Supprimez la déclaration pour : '{0}'.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Supprimer la déclaration pour : '{0}']]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Remove declaration for: '{0}'.]]></Val>
|
||||
@@ -6339,8 +6354,8 @@
|
||||
<Item ItemId=";Rewrite_as_the_indexed_access_type_0_90026" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Rewrite as the indexed access type '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Réécrire en tant que type d'accès indexé '{0}'.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Réécrire en tant que type d'accès indexé '{0}']]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Rewrite as the indexed access type '{0}'.]]></Val>
|
||||
@@ -6459,6 +6474,9 @@
|
||||
<Item ItemId=";Specify_ECMAScript_target_version_Colon_ES3_default_ES5_ES2015_ES2016_ES2017_ES2018_or_ESNEXT_6015" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017','ES2018' or 'ESNEXT'.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Spécifiez la version cible d'ECMAScript : 'ES3' (par défaut), 'ES5', 'ES2015', 'ES2016', 'ES2017','ES2018' ou 'ESNEXT'.]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
@@ -6567,6 +6585,9 @@
|
||||
<Item ItemId=";Starting_compilation_in_watch_mode_6031" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Starting compilation in watch mode...]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Démarrage de la compilation en mode espion...]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
@@ -7422,6 +7443,9 @@
|
||||
<Item ItemId=";Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated_2719" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Type '{0}' is not assignable to type '{1}'. Two different types with this name exist, but they are unrelated.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Impossible d'assigner le type '{0}' au type '{1}'. Il existe deux types distincts portant ce nom, mais ils ne sont pas liés.]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
|
||||
@@ -867,8 +867,8 @@
|
||||
<Item ItemId=";Add_0_to_existing_import_declaration_from_1_90015" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Add '{0}' to existing import declaration from "{1}"]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Aggiungere '{0}' alla dichiarazione di importazione esistente da "{1}".]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Aggiungere '{0}' alla dichiarazione di importazione esistente da "{1}"]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Add '{0}' to existing import declaration from "{1}".]]></Val>
|
||||
@@ -879,8 +879,8 @@
|
||||
<Item ItemId=";Add_index_signature_for_property_0_90017" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Add index signature for property '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Aggiungere la firma dell'indice per la proprietà '{0}'.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Aggiungere la firma dell'indice per la proprietà '{0}']]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Add index signature for property '{0}'.]]></Val>
|
||||
@@ -891,8 +891,8 @@
|
||||
<Item ItemId=";Add_missing_super_call_90001" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Add missing 'super()' call]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Aggiunge la chiamata mancante a 'super()'.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Aggiungere la chiamata mancante a 'super()']]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Add missing 'super()' call.]]></Val>
|
||||
@@ -903,8 +903,8 @@
|
||||
<Item ItemId=";Add_this_to_unresolved_variable_90008" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Add 'this.' to unresolved variable]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Aggiungi 'this.' alla variabile non risolta.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Aggiungere 'this.' alla variabile non risolta]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Add 'this.' to unresolved variable.]]></Val>
|
||||
@@ -915,6 +915,9 @@
|
||||
<Item ItemId=";Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript__5068" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Adding a tsconfig.json file will help organize projects that contain both TypeScript and JavaScript files. Learn more at https://aka.ms/tsconfig.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Aggiungere un file tsconfig.json per organizzare più facilmente progetti che contengono sia file TypeScript che JavaScript. Per altre informazioni, vedere https://aka.ms/tsconfig.]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
@@ -1545,8 +1548,8 @@
|
||||
<Item ItemId=";Call_decorator_expression_90028" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Call decorator expression]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Chiama l'espressione Decorator.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Chiamare l'espressione Decorator]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Call decorator expression.]]></Val>
|
||||
@@ -1962,8 +1965,8 @@
|
||||
<Item ItemId=";Change_0_to_1_90014" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Change '{0}' to '{1}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Cambia '{0}' in '{1}'.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Modificare '{0}' in '{1}']]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Change '{0}' to '{1}'.]]></Val>
|
||||
@@ -1986,8 +1989,8 @@
|
||||
<Item ItemId=";Change_spelling_to_0_90022" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Change spelling to '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Modificare l'ortografia in '{0}'.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Modificare l'ortografia in '{0}']]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Change spelling to '{0}'.]]></Val>
|
||||
@@ -2364,8 +2367,8 @@
|
||||
<Item ItemId=";Declare_method_0_90023" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Declare method '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Dichiarare il metodo '{0}'.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Dichiarare il metodo '{0}']]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Declare method '{0}'.]]></Val>
|
||||
@@ -2376,8 +2379,8 @@
|
||||
<Item ItemId=";Declare_property_0_90016" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Declare property '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Dichiarare la proprietà '{0}'.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Dichiarare la proprietà '{0}']]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Declare property '{0}'.]]></Val>
|
||||
@@ -2388,8 +2391,8 @@
|
||||
<Item ItemId=";Declare_static_method_0_90024" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Declare static method '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Dichiarare il metodo statico '{0}'.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Dichiarare il metodo statico '{0}']]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Declare static method '{0}'.]]></Val>
|
||||
@@ -2400,8 +2403,8 @@
|
||||
<Item ItemId=";Declare_static_property_0_90027" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Declare static property '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Dichiarare la proprietà statica '{0}'.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Dichiarare la proprietà statica '{0}']]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Declare static property '{0}'.]]></Val>
|
||||
@@ -2484,8 +2487,8 @@
|
||||
<Item ItemId=";Disable_checking_for_this_file_90018" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Disable checking for this file]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Disabilita la verifica per questo file.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Disabilitare la verifica per questo file]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Disable checking for this file.]]></Val>
|
||||
@@ -3756,8 +3759,8 @@
|
||||
<Item ItemId=";Ignore_this_error_message_90019" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Ignore this error message]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Ignora questo messaggio di errore.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Ignorare questo messaggio di errore]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Ignore this error message.]]></Val>
|
||||
@@ -3780,8 +3783,8 @@
|
||||
<Item ItemId=";Implement_interface_0_90006" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Implement interface '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Implementa l'interfaccia '{0}'.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Implementare l'interfaccia '{0}']]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Implement interface '{0}'.]]></Val>
|
||||
@@ -3801,8 +3804,8 @@
|
||||
<Item ItemId=";Import_0_from_module_1_90013" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Import '{0}' from module "{1}"]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Importa '{0}' dal modulo "{1}".]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Importare '{0}' dal modulo "{1}"]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Import '{0}' from module "{1}".]]></Val>
|
||||
@@ -3954,8 +3957,8 @@
|
||||
<Item ItemId=";Infer_parameter_types_from_usage_95012" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Infer parameter types from usage]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Deriva i tipi di parametro dall'utilizzo.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Derivare i tipi di parametro dall'utilizzo]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Infer parameter types from usage.]]></Val>
|
||||
@@ -3966,8 +3969,8 @@
|
||||
<Item ItemId=";Infer_type_of_0_from_usage_95011" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Infer type of '{0}' from usage]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Deriva il tipo di '{0}' dall'utilizzo.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Derivare il tipo di '{0}' dall'utilizzo]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Infer type of '{0}' from usage.]]></Val>
|
||||
@@ -3978,8 +3981,8 @@
|
||||
<Item ItemId=";Initialize_property_0_in_the_constructor_90020" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Initialize property '{0}' in the constructor]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Inizializza la proprietà '{0}' nel costruttore.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Inizializzare la proprietà '{0}' nel costruttore]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Initialize property '{0}' in the constructor.]]></Val>
|
||||
@@ -3990,8 +3993,8 @@
|
||||
<Item ItemId=";Initialize_static_property_0_90021" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Initialize static property '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Inizializza la proprietà statica '{0}'.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Inizializzare la proprietà statica '{0}']]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Initialize static property '{0}'.]]></Val>
|
||||
@@ -4527,8 +4530,8 @@
|
||||
<Item ItemId=";Make_super_call_the_first_statement_in_the_constructor_90002" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Make 'super()' call the first statement in the constructor]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Imposta la chiamata a 'super()' come prima istruzione nel costruttore.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Impostare la chiamata a 'super()' come prima istruzione nel costruttore]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Make 'super()' call the first statement in the constructor.]]></Val>
|
||||
@@ -4839,6 +4842,12 @@
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Numeric_separators_are_not_allowed_here_6188" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Numeric separators are not allowed here.]]></Val>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Object_is_possibly_null_2531" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Object is possibly 'null'.]]></Val>
|
||||
@@ -5445,8 +5454,8 @@
|
||||
<Item ItemId=";Prefix_0_with_an_underscore_90025" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Prefix '{0}' with an underscore]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Anteporre un carattere di sottolineatura a '{0}'.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Anteporre un carattere di sottolineatura a '{0}']]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Prefix '{0}' with an underscore.]]></Val>
|
||||
@@ -5901,8 +5910,8 @@
|
||||
<Item ItemId=";Remove_declaration_for_Colon_0_90004" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Remove declaration for: '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Rimuovi la dichiarazione per {0}.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Rimuovere la dichiarazione per '{0}']]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Remove declaration for: '{0}'.]]></Val>
|
||||
@@ -6330,8 +6339,8 @@
|
||||
<Item ItemId=";Rewrite_as_the_indexed_access_type_0_90026" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Rewrite as the indexed access type '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Riscrivere come tipo di accesso indicizzato '{0}'.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Riscrivere come tipo di accesso indicizzato '{0}']]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Rewrite as the indexed access type '{0}'.]]></Val>
|
||||
@@ -6450,6 +6459,9 @@
|
||||
<Item ItemId=";Specify_ECMAScript_target_version_Colon_ES3_default_ES5_ES2015_ES2016_ES2017_ES2018_or_ESNEXT_6015" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017','ES2018' or 'ESNEXT'.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Specificare la versione di destinazione di ECMAScript: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018' o 'ESNEXT'.]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
@@ -6558,6 +6570,9 @@
|
||||
<Item ItemId=";Starting_compilation_in_watch_mode_6031" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Starting compilation in watch mode...]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Avvio della compilazione in modalità espressione di controllo...]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
@@ -7413,6 +7428,9 @@
|
||||
<Item ItemId=";Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated_2719" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Type '{0}' is not assignable to type '{1}'. Two different types with this name exist, but they are unrelated.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Il tipo '{0}' non è assegnabile al tipo '{1}'. Sono presenti due tipi diversi con questo nome, che però non sono correlati.]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
|
||||
@@ -867,8 +867,8 @@
|
||||
<Item ItemId=";Add_0_to_existing_import_declaration_from_1_90015" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Add '{0}' to existing import declaration from "{1}"]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA["{1}" から既存のインポート宣言に '{0}' を追加します。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA["{1}" から既存のインポート宣言に '{0}' を追加する]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Add '{0}' to existing import declaration from "{1}".]]></Val>
|
||||
@@ -879,8 +879,8 @@
|
||||
<Item ItemId=";Add_index_signature_for_property_0_90017" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Add index signature for property '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[プロパティ '{0}' のインデックス シグネチャを追加します。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[プロパティ '{0}' のインデックス シグネチャを追加する]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Add index signature for property '{0}'.]]></Val>
|
||||
@@ -891,8 +891,8 @@
|
||||
<Item ItemId=";Add_missing_super_call_90001" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Add missing 'super()' call]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[欠落している 'super()' 呼び出しを追加します。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[欠落している 'super()' 呼び出しを追加する]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Add missing 'super()' call.]]></Val>
|
||||
@@ -903,8 +903,8 @@
|
||||
<Item ItemId=";Add_this_to_unresolved_variable_90008" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Add 'this.' to unresolved variable]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA['this.' を未解決の変数に追加します。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA['this.' を未解決の変数に追加する]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Add 'this.' to unresolved variable.]]></Val>
|
||||
@@ -915,6 +915,9 @@
|
||||
<Item ItemId=";Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript__5068" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Adding a tsconfig.json file will help organize projects that contain both TypeScript and JavaScript files. Learn more at https://aka.ms/tsconfig.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[tsconfig.json ファイルを追加すると、TypeScript ファイルと JavaScript ファイルの両方を含むプロジェクトを整理できます。詳細については、https://aka.ms/tsconfig をご覧ください。]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
@@ -1545,8 +1548,8 @@
|
||||
<Item ItemId=";Call_decorator_expression_90028" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Call decorator expression]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[デコレーター式を呼び出します。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[デコレーター式を呼び出す]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Call decorator expression.]]></Val>
|
||||
@@ -1962,8 +1965,8 @@
|
||||
<Item ItemId=";Change_0_to_1_90014" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Change '{0}' to '{1}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA['{0}' を '{1}' に変更します。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA['{0}' を '{1}' に変更する]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Change '{0}' to '{1}'.]]></Val>
|
||||
@@ -1986,8 +1989,8 @@
|
||||
<Item ItemId=";Change_spelling_to_0_90022" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Change spelling to '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[スペルを '{0}' に変更してください。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[スペルを '{0}' に変更する]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Change spelling to '{0}'.]]></Val>
|
||||
@@ -2364,8 +2367,8 @@
|
||||
<Item ItemId=";Declare_method_0_90023" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Declare method '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[メソッド '{0}' を宣言します。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[メソッド '{0}' を宣言する]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Declare method '{0}'.]]></Val>
|
||||
@@ -2376,8 +2379,8 @@
|
||||
<Item ItemId=";Declare_property_0_90016" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Declare property '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[プロパティ '{0}' を宣言します。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[プロパティ '{0}' を宣言する]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Declare property '{0}'.]]></Val>
|
||||
@@ -2388,8 +2391,8 @@
|
||||
<Item ItemId=";Declare_static_method_0_90024" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Declare static method '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[静的メソッド '{0}' を宣言します。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[静的メソッド '{0}' を宣言する]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Declare static method '{0}'.]]></Val>
|
||||
@@ -2400,8 +2403,8 @@
|
||||
<Item ItemId=";Declare_static_property_0_90027" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Declare static property '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[静的プロパティ '{0}' を宣言します。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[静的プロパティ '{0}' を宣言する]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Declare static property '{0}'.]]></Val>
|
||||
@@ -2484,8 +2487,8 @@
|
||||
<Item ItemId=";Disable_checking_for_this_file_90018" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Disable checking for this file]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[このファイルのチェックを無効にします。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[このファイルのチェックを無効にする]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Disable checking for this file.]]></Val>
|
||||
@@ -3756,8 +3759,8 @@
|
||||
<Item ItemId=";Ignore_this_error_message_90019" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Ignore this error message]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[このエラー メッセージを無視します。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[このエラー メッセージを無視する]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Ignore this error message.]]></Val>
|
||||
@@ -3780,8 +3783,8 @@
|
||||
<Item ItemId=";Implement_interface_0_90006" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Implement interface '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[インターフェイス '{0}' を実装します。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[インターフェイス '{0}' を実装する]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Implement interface '{0}'.]]></Val>
|
||||
@@ -3801,8 +3804,8 @@
|
||||
<Item ItemId=";Import_0_from_module_1_90013" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Import '{0}' from module "{1}"]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[モジュール "{1}" から '{0}' をインポートします。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[モジュール "{1}" から '{0}' をインポートする]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Import '{0}' from module "{1}".]]></Val>
|
||||
@@ -3954,8 +3957,8 @@
|
||||
<Item ItemId=";Infer_parameter_types_from_usage_95012" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Infer parameter types from usage]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[使用状況からパラメーターの型を推論します。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[使用状況からパラメーターの型を推論する]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Infer parameter types from usage.]]></Val>
|
||||
@@ -3966,8 +3969,8 @@
|
||||
<Item ItemId=";Infer_type_of_0_from_usage_95011" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Infer type of '{0}' from usage]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[使用状況から型 '{0}' を推論します。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[使用状況から '{0}' の型を推論する]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Infer type of '{0}' from usage.]]></Val>
|
||||
@@ -3978,8 +3981,8 @@
|
||||
<Item ItemId=";Initialize_property_0_in_the_constructor_90020" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Initialize property '{0}' in the constructor]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[コンストラクターのプロパティ '{0}' を初期化します。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[コンストラクターのプロパティ '{0}' を初期化する]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Initialize property '{0}' in the constructor.]]></Val>
|
||||
@@ -3990,8 +3993,8 @@
|
||||
<Item ItemId=";Initialize_static_property_0_90021" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Initialize static property '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[静的プロパティ '{0}' を初期化します。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[静的プロパティ '{0}' を初期化する]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Initialize static property '{0}'.]]></Val>
|
||||
@@ -4527,8 +4530,8 @@
|
||||
<Item ItemId=";Make_super_call_the_first_statement_in_the_constructor_90002" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Make 'super()' call the first statement in the constructor]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA['super()' 呼び出しをコンストラクター内の最初のステートメントにします。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA['super()' 呼び出しをコンストラクター内の最初のステートメントにする]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Make 'super()' call the first statement in the constructor.]]></Val>
|
||||
@@ -4749,6 +4752,12 @@
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Multiple_consecutive_numeric_separators_are_not_permitted_6189" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Multiple consecutive numeric separators are not permitted.]]></Val>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Multiple_constructor_implementations_are_not_allowed_2392" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Multiple constructor implementations are not allowed.]]></Val>
|
||||
@@ -4839,6 +4848,12 @@
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Numeric_separators_are_not_allowed_here_6188" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Numeric separators are not allowed here.]]></Val>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Object_is_possibly_null_2531" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Object is possibly 'null'.]]></Val>
|
||||
@@ -5445,8 +5460,8 @@
|
||||
<Item ItemId=";Prefix_0_with_an_underscore_90025" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Prefix '{0}' with an underscore]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[アンダースコアを含むプレフィックス '{0}'。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[アンダースコアを含むプレフィックス '{0}']]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Prefix '{0}' with an underscore.]]></Val>
|
||||
@@ -5901,8 +5916,8 @@
|
||||
<Item ItemId=";Remove_declaration_for_Colon_0_90004" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Remove declaration for: '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[次に対する宣言を削除します: {0}。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[次に対する宣言を削除する: '{0}']]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Remove declaration for: '{0}'.]]></Val>
|
||||
@@ -6330,8 +6345,8 @@
|
||||
<Item ItemId=";Rewrite_as_the_indexed_access_type_0_90026" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Rewrite as the indexed access type '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[インデックス化されたアクセスの種類 '{0}' として書き換えます。]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[インデックス付きのアクセスの種類 '{0}' として書き換える]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Rewrite as the indexed access type '{0}'.]]></Val>
|
||||
@@ -6450,6 +6465,9 @@
|
||||
<Item ItemId=";Specify_ECMAScript_target_version_Colon_ES3_default_ES5_ES2015_ES2016_ES2017_ES2018_or_ESNEXT_6015" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017','ES2018' or 'ESNEXT'.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[ECMAScript のターゲット バージョンを指定します: 'ES3' (既定)、'ES5'、'ES2015'、'ES2016'、'ES2017'、'ES2018'、'ESNEXT'。]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
@@ -6558,6 +6576,9 @@
|
||||
<Item ItemId=";Starting_compilation_in_watch_mode_6031" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Starting compilation in watch mode...]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[ウォッチ モードでのコンパイルを開始しています...]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
@@ -7413,6 +7434,9 @@
|
||||
<Item ItemId=";Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated_2719" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Type '{0}' is not assignable to type '{1}'. Two different types with this name exist, but they are unrelated.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[型 '{0}' は型 '{1}' に割り当てられません。同じ名前で 2 つの異なる型が存在しますが、これは関連していません。]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
|
||||
@@ -867,8 +867,8 @@
|
||||
<Item ItemId=";Add_0_to_existing_import_declaration_from_1_90015" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Add '{0}' to existing import declaration from "{1}"]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA["{1}"에서 기존 가져오기 선언에 '{0}'을(를) 추가합니다.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA["{1}"에서 기존 가져오기 선언에 '{0}' 추가]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Add '{0}' to existing import declaration from "{1}".]]></Val>
|
||||
@@ -879,8 +879,8 @@
|
||||
<Item ItemId=";Add_index_signature_for_property_0_90017" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Add index signature for property '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA['{0}' 속성에 대해 인덱스 시그니처를 추가합니다.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA['{0}' 속성에 대해 인덱스 시그니처 추가]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Add index signature for property '{0}'.]]></Val>
|
||||
@@ -891,8 +891,8 @@
|
||||
<Item ItemId=";Add_missing_super_call_90001" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Add missing 'super()' call]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[누락된 'super()' 호출을 추가하세요.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[누락된 'super()' 호출 추가]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Add missing 'super()' call.]]></Val>
|
||||
@@ -903,8 +903,8 @@
|
||||
<Item ItemId=";Add_this_to_unresolved_variable_90008" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Add 'this.' to unresolved variable]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[확인되지 않은 변수에 'this.'을 추가하세요.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[확인되지 않은 변수에 'this.' 추가]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Add 'this.' to unresolved variable.]]></Val>
|
||||
@@ -915,6 +915,9 @@
|
||||
<Item ItemId=";Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript__5068" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Adding a tsconfig.json file will help organize projects that contain both TypeScript and JavaScript files. Learn more at https://aka.ms/tsconfig.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[tsconfig.json 파일을 추가하면 TypeScript 파일과 JavaScript 파일이 둘 다 포함된 프로젝트를 정리하는 데 도움이 됩니다. 자세한 내용은 https://aka.ms/tsconfig를 참조하세요.]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
@@ -1545,8 +1548,8 @@
|
||||
<Item ItemId=";Call_decorator_expression_90028" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Call decorator expression]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[decorator 식을 호출합니다.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[데코레이터 식 호출]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Call decorator expression.]]></Val>
|
||||
@@ -1962,8 +1965,8 @@
|
||||
<Item ItemId=";Change_0_to_1_90014" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Change '{0}' to '{1}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA['{0}'을(를) '{1}'(으)로 변경합니다.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA['{0}'을(를) '{1}'(으)로 변경]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Change '{0}' to '{1}'.]]></Val>
|
||||
@@ -1986,8 +1989,8 @@
|
||||
<Item ItemId=";Change_spelling_to_0_90022" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Change spelling to '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[철자를 '{0}'(으)로 변경하세요.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[맞춤법을 '{0}'(으)로 변경]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Change spelling to '{0}'.]]></Val>
|
||||
@@ -2364,8 +2367,8 @@
|
||||
<Item ItemId=";Declare_method_0_90023" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Declare method '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA['{0}' 메서드를 선언합니다.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA['{0}' 메서드 선언]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Declare method '{0}'.]]></Val>
|
||||
@@ -2376,8 +2379,8 @@
|
||||
<Item ItemId=";Declare_property_0_90016" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Declare property '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA['{0}' 속성을 선언합니다.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA['{0}' 속성 선언]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Declare property '{0}'.]]></Val>
|
||||
@@ -2388,8 +2391,8 @@
|
||||
<Item ItemId=";Declare_static_method_0_90024" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Declare static method '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA['{0}' 정적 메서드를 선언합니다.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA['{0}' 정적 메서드 선언]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Declare static method '{0}'.]]></Val>
|
||||
@@ -2400,8 +2403,8 @@
|
||||
<Item ItemId=";Declare_static_property_0_90027" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Declare static property '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[정적 속성 '{0}'을(를) 선언합니다.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA['{0}' 정적 속성 선언]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Declare static property '{0}'.]]></Val>
|
||||
@@ -2484,8 +2487,8 @@
|
||||
<Item ItemId=";Disable_checking_for_this_file_90018" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Disable checking for this file]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[이 파일 확인을 사용하지 않도록 설정합니다.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[이 파일 확인을 사용하지 않도록 설정]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Disable checking for this file.]]></Val>
|
||||
@@ -3756,8 +3759,8 @@
|
||||
<Item ItemId=";Ignore_this_error_message_90019" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Ignore this error message]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[이 오류 메시지를 무시합니다.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[이 오류 메시지 무시]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Ignore this error message.]]></Val>
|
||||
@@ -3780,8 +3783,8 @@
|
||||
<Item ItemId=";Implement_interface_0_90006" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Implement interface '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA['{0}' 인터페이스를 구현하세요.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA['{0}' 인터페이스 구현]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Implement interface '{0}'.]]></Val>
|
||||
@@ -3801,8 +3804,8 @@
|
||||
<Item ItemId=";Import_0_from_module_1_90013" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Import '{0}' from module "{1}"]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA["{1}" 모듈에서 '{0}'을(를) 가져옵니다.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA["{1}" 모듈에서 '{0}' 가져오기]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Import '{0}' from module "{1}".]]></Val>
|
||||
@@ -3954,8 +3957,8 @@
|
||||
<Item ItemId=";Infer_parameter_types_from_usage_95012" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Infer parameter types from usage]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[사용량에서 매개 변수 형식을 유추합니다.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[사용량에서 매개 변수 형식 유추]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Infer parameter types from usage.]]></Val>
|
||||
@@ -3966,8 +3969,8 @@
|
||||
<Item ItemId=";Infer_type_of_0_from_usage_95011" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Infer type of '{0}' from usage]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[사용량에서 '{0}'의 형식을 유추합니다.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[사용량에서 '{0}'의 형식 유추]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Infer type of '{0}' from usage.]]></Val>
|
||||
@@ -3978,8 +3981,8 @@
|
||||
<Item ItemId=";Initialize_property_0_in_the_constructor_90020" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Initialize property '{0}' in the constructor]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[생성자에서 속성 '{0}'을(를) 초기화합니다.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[생성자에서 속성 '{0}' 초기화]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Initialize property '{0}' in the constructor.]]></Val>
|
||||
@@ -3990,8 +3993,8 @@
|
||||
<Item ItemId=";Initialize_static_property_0_90021" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Initialize static property '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[정적 속성 '{0}'을(를) 초기화합니다.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[정적 속성 '{0}' 초기화]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Initialize static property '{0}'.]]></Val>
|
||||
@@ -4527,8 +4530,8 @@
|
||||
<Item ItemId=";Make_super_call_the_first_statement_in_the_constructor_90002" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Make 'super()' call the first statement in the constructor]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[생성자의 첫 번째 문을 'super()'로 호출하세요.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[생성자의 첫 번째 문을 'super()'로 호출]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Make 'super()' call the first statement in the constructor.]]></Val>
|
||||
@@ -4749,6 +4752,12 @@
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Multiple_consecutive_numeric_separators_are_not_permitted_6189" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Multiple consecutive numeric separators are not permitted.]]></Val>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Multiple_constructor_implementations_are_not_allowed_2392" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Multiple constructor implementations are not allowed.]]></Val>
|
||||
@@ -4839,6 +4848,12 @@
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Numeric_separators_are_not_allowed_here_6188" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Numeric separators are not allowed here.]]></Val>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Object_is_possibly_null_2531" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Object is possibly 'null'.]]></Val>
|
||||
@@ -5445,8 +5460,8 @@
|
||||
<Item ItemId=";Prefix_0_with_an_underscore_90025" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Prefix '{0}' with an underscore]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA['{0}' 앞에 밑줄을 붙이세요.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA['{0}' 앞에 밑줄 추가]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Prefix '{0}' with an underscore.]]></Val>
|
||||
@@ -5901,8 +5916,8 @@
|
||||
<Item ItemId=";Remove_declaration_for_Colon_0_90004" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Remove declaration for: '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA['{0}'에 대한 선언을 제거합니다.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA['{0}'에 대한 선언 제거]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Remove declaration for: '{0}'.]]></Val>
|
||||
@@ -6330,8 +6345,8 @@
|
||||
<Item ItemId=";Rewrite_as_the_indexed_access_type_0_90026" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Rewrite as the indexed access type '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[인덱싱된 액세스 형식 '{0}'(으)로 다시 작성하세요.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[인덱싱된 액세스 형식 '{0}'(으)로 다시 작성]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Rewrite as the indexed access type '{0}'.]]></Val>
|
||||
@@ -6450,6 +6465,9 @@
|
||||
<Item ItemId=";Specify_ECMAScript_target_version_Colon_ES3_default_ES5_ES2015_ES2016_ES2017_ES2018_or_ESNEXT_6015" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017','ES2018' or 'ESNEXT'.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[ECMAScript 대상 버전을 'ES3'(기본값), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018' 또는 'ESNEXT'로 지정합니다.]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
@@ -6558,6 +6576,9 @@
|
||||
<Item ItemId=";Starting_compilation_in_watch_mode_6031" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Starting compilation in watch mode...]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[감시 모드에서 컴파일을 시작하는 중...]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
@@ -7413,6 +7434,9 @@
|
||||
<Item ItemId=";Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated_2719" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Type '{0}' is not assignable to type '{1}'. Two different types with this name exist, but they are unrelated.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA['{0}' 형식을 '{1}' 형식에 할당할 수 없습니다. 이름이 같은 2개의 서로 다른 형식이 있지만 서로 관련은 없습니다.]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
|
||||
@@ -857,8 +857,8 @@
|
||||
<Item ItemId=";Add_0_to_existing_import_declaration_from_1_90015" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Add '{0}' to existing import declaration from "{1}"]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Dodaj element „{0}” do istniejącej deklaracji importu z elementu „{1}”.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Dodaj element „{0}” do istniejącej deklaracji importu z elementu „{1}”]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Add '{0}' to existing import declaration from "{1}".]]></Val>
|
||||
@@ -869,8 +869,8 @@
|
||||
<Item ItemId=";Add_index_signature_for_property_0_90017" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Add index signature for property '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Dodaj sygnaturę indeksu dla właściwości „{0}”.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Dodaj sygnaturę indeksu dla właściwości „{0}”]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Add index signature for property '{0}'.]]></Val>
|
||||
@@ -881,8 +881,8 @@
|
||||
<Item ItemId=";Add_missing_super_call_90001" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Add missing 'super()' call]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Dodaj brakujące wywołanie „super()”.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Dodaj brakujące wywołanie „super()”]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Add missing 'super()' call.]]></Val>
|
||||
@@ -893,8 +893,8 @@
|
||||
<Item ItemId=";Add_this_to_unresolved_variable_90008" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Add 'this.' to unresolved variable]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Dodaj „this.” do nierozpoznanej zmiennej.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Dodaj „this.” do nierozpoznanej zmiennej]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Add 'this.' to unresolved variable.]]></Val>
|
||||
@@ -905,6 +905,9 @@
|
||||
<Item ItemId=";Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript__5068" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Adding a tsconfig.json file will help organize projects that contain both TypeScript and JavaScript files. Learn more at https://aka.ms/tsconfig.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Dodanie pliku tsconfig.json pomoże w organizowaniu projektów, które zawierają pliki TypeScript i JavaScript. Dowiedz się więcej: https://aka.ms/tsconfig.]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
@@ -1535,8 +1538,8 @@
|
||||
<Item ItemId=";Call_decorator_expression_90028" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Call decorator expression]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Wywołaj wyrażenie dekoratora.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Wywołaj wyrażenie dekoratora]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Call decorator expression.]]></Val>
|
||||
@@ -1952,8 +1955,8 @@
|
||||
<Item ItemId=";Change_0_to_1_90014" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Change '{0}' to '{1}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Zmień element „{0}” na „{1}”.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Zmień element „{0}” na „{1}”]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Change '{0}' to '{1}'.]]></Val>
|
||||
@@ -1976,8 +1979,8 @@
|
||||
<Item ItemId=";Change_spelling_to_0_90022" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Change spelling to '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Zmiana pisowni na „{0}”.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Zmień pisownię na „{0}”]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Change spelling to '{0}'.]]></Val>
|
||||
@@ -2354,8 +2357,8 @@
|
||||
<Item ItemId=";Declare_method_0_90023" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Declare method '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Zadeklaruj metodę „{0}”.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Zadeklaruj metodę „{0}”]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Declare method '{0}'.]]></Val>
|
||||
@@ -2366,8 +2369,8 @@
|
||||
<Item ItemId=";Declare_property_0_90016" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Declare property '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Zadeklaruj właściwość „{0}”.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Zadeklaruj właściwość „{0}”]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Declare property '{0}'.]]></Val>
|
||||
@@ -2378,8 +2381,8 @@
|
||||
<Item ItemId=";Declare_static_method_0_90024" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Declare static method '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Zadeklaruj metodę statyczną „{0}”.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Zadeklaruj metodę statyczną „{0}”]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Declare static method '{0}'.]]></Val>
|
||||
@@ -2390,8 +2393,8 @@
|
||||
<Item ItemId=";Declare_static_property_0_90027" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Declare static property '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Zadeklaruj właściwość statyczną „{0}”.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Zadeklaruj właściwość statyczną „{0}”]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Declare static property '{0}'.]]></Val>
|
||||
@@ -2474,8 +2477,8 @@
|
||||
<Item ItemId=";Disable_checking_for_this_file_90018" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Disable checking for this file]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Wyłącz sprawdzanie dla tego pliku.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Wyłącz sprawdzanie dla tego pliku]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Disable checking for this file.]]></Val>
|
||||
@@ -3746,8 +3749,8 @@
|
||||
<Item ItemId=";Ignore_this_error_message_90019" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Ignore this error message]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Ignoruj ten komunikat o błędzie.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Ignoruj ten komunikat o błędzie]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Ignore this error message.]]></Val>
|
||||
@@ -3770,8 +3773,8 @@
|
||||
<Item ItemId=";Implement_interface_0_90006" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Implement interface '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Implementuj interfejs „{0}”.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Implementuj interfejs „{0}”]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Implement interface '{0}'.]]></Val>
|
||||
@@ -3791,8 +3794,8 @@
|
||||
<Item ItemId=";Import_0_from_module_1_90013" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Import '{0}' from module "{1}"]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Import „{0}” z modułu „{1}”.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Importuj element „{0}” z modułu „{1}”]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Import '{0}' from module "{1}".]]></Val>
|
||||
@@ -3944,8 +3947,8 @@
|
||||
<Item ItemId=";Infer_parameter_types_from_usage_95012" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Infer parameter types from usage]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Wywnioskuj typy parametrów na podstawie użycia.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Wnioskuj typy parametrów na podstawie użycia]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Infer parameter types from usage.]]></Val>
|
||||
@@ -3956,8 +3959,8 @@
|
||||
<Item ItemId=";Infer_type_of_0_from_usage_95011" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Infer type of '{0}' from usage]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Wywnioskuj typ elementu „{0}” na podstawie użycia.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Wnioskuj typ elementu „{0}” na podstawie użycia]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Infer type of '{0}' from usage.]]></Val>
|
||||
@@ -3968,8 +3971,8 @@
|
||||
<Item ItemId=";Initialize_property_0_in_the_constructor_90020" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Initialize property '{0}' in the constructor]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Zainicjuj właściwość „{0}” w konstruktorze.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Zainicjuj właściwość „{0}” w konstruktorze]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Initialize property '{0}' in the constructor.]]></Val>
|
||||
@@ -3980,8 +3983,8 @@
|
||||
<Item ItemId=";Initialize_static_property_0_90021" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Initialize static property '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Zainicjuj właściwość statyczną „{0}”.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Zainicjuj właściwość statyczną „{0}”]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Initialize static property '{0}'.]]></Val>
|
||||
@@ -4517,8 +4520,8 @@
|
||||
<Item ItemId=";Make_super_call_the_first_statement_in_the_constructor_90002" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Make 'super()' call the first statement in the constructor]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Ustaw wywołanie „super()” jako pierwszą instrukcję w konstruktorze.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Ustaw wywołanie „super()” jako pierwszą instrukcję w konstruktorze]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Make 'super()' call the first statement in the constructor.]]></Val>
|
||||
@@ -4829,6 +4832,12 @@
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Numeric_separators_are_not_allowed_here_6188" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Numeric separators are not allowed here.]]></Val>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Object_is_possibly_null_2531" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Object is possibly 'null'.]]></Val>
|
||||
@@ -5432,8 +5441,8 @@
|
||||
<Item ItemId=";Prefix_0_with_an_underscore_90025" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Prefix '{0}' with an underscore]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Prefiks „{0}” z podkreśleniem.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Poprzedzaj elementy „{0}” znakiem podkreślenia]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Prefix '{0}' with an underscore.]]></Val>
|
||||
@@ -5888,8 +5897,8 @@
|
||||
<Item ItemId=";Remove_declaration_for_Colon_0_90004" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Remove declaration for: '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Usuń deklarację dla: „{0}”.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Usuń deklarację dla: „{0}”]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Remove declaration for: '{0}'.]]></Val>
|
||||
@@ -6314,8 +6323,8 @@
|
||||
<Item ItemId=";Rewrite_as_the_indexed_access_type_0_90026" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Rewrite as the indexed access type '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Zapisz ponownie jako typ dostępu indeksowanego „{0}”.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Napisz ponownie jako indeksowany typ dostępu „{0}”]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Rewrite as the indexed access type '{0}'.]]></Val>
|
||||
@@ -6434,6 +6443,9 @@
|
||||
<Item ItemId=";Specify_ECMAScript_target_version_Colon_ES3_default_ES5_ES2015_ES2016_ES2017_ES2018_or_ESNEXT_6015" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017','ES2018' or 'ESNEXT'.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Podaj wersję docelową języka ECMAScript: „ES3” (domyślna), „ES5”, „ES2015”, „ES2016”, „ES2017”, „ES2018” lub „ESNEXT”.]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
@@ -6542,6 +6554,9 @@
|
||||
<Item ItemId=";Starting_compilation_in_watch_mode_6031" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Starting compilation in watch mode...]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Trwa uruchamianie kompilacji w trybie śledzenia...]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
@@ -7397,6 +7412,9 @@
|
||||
<Item ItemId=";Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated_2719" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Type '{0}' is not assignable to type '{1}'. Two different types with this name exist, but they are unrelated.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Typu „{0}” nie można przypisać do typu „{1}”. Istnieją dwa różne typy o tej nazwie, lecz są ze sobą niezwiązane.]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
|
||||
@@ -857,8 +857,8 @@
|
||||
<Item ItemId=";Add_0_to_existing_import_declaration_from_1_90015" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Add '{0}' to existing import declaration from "{1}"]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Adicione "{0}" à declaração de importação existente de "{1}".]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Adicionar '{0}' à declaração de importação existente de "{1}"]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Add '{0}' to existing import declaration from "{1}".]]></Val>
|
||||
@@ -869,8 +869,8 @@
|
||||
<Item ItemId=";Add_index_signature_for_property_0_90017" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Add index signature for property '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Adicione assinatura de índice para a propriedade '{0}'.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Adicionar assinatura de índice para a propriedade '{0}']]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Add index signature for property '{0}'.]]></Val>
|
||||
@@ -881,8 +881,8 @@
|
||||
<Item ItemId=";Add_missing_super_call_90001" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Add missing 'super()' call]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Adicionar chamada 'super()' ausente.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Adicionar chamada 'super()' ausente]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Add missing 'super()' call.]]></Val>
|
||||
@@ -893,8 +893,8 @@
|
||||
<Item ItemId=";Add_this_to_unresolved_variable_90008" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Add 'this.' to unresolved variable]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Adicione 'this.' a uma variável não resolvida.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Adicionar 'this.' a uma variável não resolvida]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Add 'this.' to unresolved variable.]]></Val>
|
||||
@@ -905,6 +905,9 @@
|
||||
<Item ItemId=";Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript__5068" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Adding a tsconfig.json file will help organize projects that contain both TypeScript and JavaScript files. Learn more at https://aka.ms/tsconfig.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Adicionar um arquivo tsconfig.json ajudará a organizar projetos que contêm arquivos TypeScript e JavaScript. Saiba mais em https://aka.ms/tsconfig.]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
@@ -1535,8 +1538,8 @@
|
||||
<Item ItemId=";Call_decorator_expression_90028" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Call decorator expression]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Chamar expressão decoradora.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Chamar expressão do decorador]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Call decorator expression.]]></Val>
|
||||
@@ -1952,8 +1955,8 @@
|
||||
<Item ItemId=";Change_0_to_1_90014" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Change '{0}' to '{1}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Alterar '{0}' para '{1}'.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Alterar '{0}' para '{1}']]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Change '{0}' to '{1}'.]]></Val>
|
||||
@@ -1976,8 +1979,8 @@
|
||||
<Item ItemId=";Change_spelling_to_0_90022" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Change spelling to '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Alterar ortografia para '{0}'.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Alterar ortografia para '{0}']]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Change spelling to '{0}'.]]></Val>
|
||||
@@ -2354,8 +2357,8 @@
|
||||
<Item ItemId=";Declare_method_0_90023" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Declare method '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Declare o método '{0}'.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Declarar método '{0}']]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Declare method '{0}'.]]></Val>
|
||||
@@ -2366,8 +2369,8 @@
|
||||
<Item ItemId=";Declare_property_0_90016" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Declare property '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Declare a propriedade '{0}'.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Declarar propriedade '{0}']]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Declare property '{0}'.]]></Val>
|
||||
@@ -2378,8 +2381,8 @@
|
||||
<Item ItemId=";Declare_static_method_0_90024" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Declare static method '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Declare o método estático '{0}'.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Declarar método estático '{0}']]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Declare static method '{0}'.]]></Val>
|
||||
@@ -2390,8 +2393,8 @@
|
||||
<Item ItemId=";Declare_static_property_0_90027" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Declare static property '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Declare a propriedade estática "{0}".]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Declarar propriedade estática '{0}']]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Declare static property '{0}'.]]></Val>
|
||||
@@ -2474,8 +2477,8 @@
|
||||
<Item ItemId=";Disable_checking_for_this_file_90018" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Disable checking for this file]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Desabilitar a verificação para esse arquivo.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Desabilitar a verificação para esse arquivo]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Disable checking for this file.]]></Val>
|
||||
@@ -3746,8 +3749,8 @@
|
||||
<Item ItemId=";Ignore_this_error_message_90019" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Ignore this error message]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Ignore essa mensagem de erro.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Ignorar essa mensagem de erro]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Ignore this error message.]]></Val>
|
||||
@@ -3770,8 +3773,8 @@
|
||||
<Item ItemId=";Implement_interface_0_90006" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Implement interface '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Implemente a interface '{0}'.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Implementar a interface '{0}']]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Implement interface '{0}'.]]></Val>
|
||||
@@ -3791,8 +3794,8 @@
|
||||
<Item ItemId=";Import_0_from_module_1_90013" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Import '{0}' from module "{1}"]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Importar '{0}' do módulo "{1}".]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Importar '{0}' do módulo "{1}"]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Import '{0}' from module "{1}".]]></Val>
|
||||
@@ -3944,8 +3947,8 @@
|
||||
<Item ItemId=";Infer_parameter_types_from_usage_95012" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Infer parameter types from usage]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Inferir os tipos de parâmetro do uso.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Inferir tipos de parâmetro pelo uso]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Infer parameter types from usage.]]></Val>
|
||||
@@ -3956,8 +3959,8 @@
|
||||
<Item ItemId=";Infer_type_of_0_from_usage_95011" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Infer type of '{0}' from usage]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Inferir o tipo de '{0}' do uso.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Inferir tipo de '{0}' pelo uso]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Infer type of '{0}' from usage.]]></Val>
|
||||
@@ -3968,8 +3971,8 @@
|
||||
<Item ItemId=";Initialize_property_0_in_the_constructor_90020" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Initialize property '{0}' in the constructor]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Inicializar a propriedade '{0}' no construtor.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Inicializar a propriedade '{0}' no construtor]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Initialize property '{0}' in the constructor.]]></Val>
|
||||
@@ -3980,8 +3983,8 @@
|
||||
<Item ItemId=";Initialize_static_property_0_90021" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Initialize static property '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Inicializar a propriedade estática '{0}'.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Inicializar a propriedade estática '{0}']]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Initialize static property '{0}'.]]></Val>
|
||||
@@ -4517,8 +4520,8 @@
|
||||
<Item ItemId=";Make_super_call_the_first_statement_in_the_constructor_90002" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Make 'super()' call the first statement in the constructor]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Tornar a chamada 'super()' a primeira instrução no construtor.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Tornar a chamada 'super()' a primeira instrução no construtor]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Make 'super()' call the first statement in the constructor.]]></Val>
|
||||
@@ -4739,6 +4742,12 @@
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Multiple_consecutive_numeric_separators_are_not_permitted_6189" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Multiple consecutive numeric separators are not permitted.]]></Val>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Multiple_constructor_implementations_are_not_allowed_2392" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Multiple constructor implementations are not allowed.]]></Val>
|
||||
@@ -4829,6 +4838,12 @@
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Numeric_separators_are_not_allowed_here_6188" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Numeric separators are not allowed here.]]></Val>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Object_is_possibly_null_2531" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Object is possibly 'null'.]]></Val>
|
||||
@@ -5432,8 +5447,8 @@
|
||||
<Item ItemId=";Prefix_0_with_an_underscore_90025" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Prefix '{0}' with an underscore]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Prefixo '{0}' com um sublinhado.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Prefixo '{0}' com um sublinhado]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Prefix '{0}' with an underscore.]]></Val>
|
||||
@@ -5888,8 +5903,8 @@
|
||||
<Item ItemId=";Remove_declaration_for_Colon_0_90004" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Remove declaration for: '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Remover declaração para: '{0}'.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Remover declaração para: '{0}']]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Remove declaration for: '{0}'.]]></Val>
|
||||
@@ -6314,8 +6329,8 @@
|
||||
<Item ItemId=";Rewrite_as_the_indexed_access_type_0_90026" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Rewrite as the indexed access type '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Regravar como o tipo de acesso indexado '{0}'.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Reescrever como o tipo de acesso indexado '{0}']]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Rewrite as the indexed access type '{0}'.]]></Val>
|
||||
@@ -6434,6 +6449,9 @@
|
||||
<Item ItemId=";Specify_ECMAScript_target_version_Colon_ES3_default_ES5_ES2015_ES2016_ES2017_ES2018_or_ESNEXT_6015" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017','ES2018' or 'ESNEXT'.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Especifique a versão de destino do ECMAScript: 'ES3' (padrão), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018' ou 'ESNEXT'.]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
@@ -6542,6 +6560,9 @@
|
||||
<Item ItemId=";Starting_compilation_in_watch_mode_6031" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Starting compilation in watch mode...]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Iniciando compilação no modo de inspeção...]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
@@ -7397,6 +7418,9 @@
|
||||
<Item ItemId=";Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated_2719" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Type '{0}' is not assignable to type '{1}'. Two different types with this name exist, but they are unrelated.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[O tipo '{0}' não é atribuível ao tipo '{1}'. Dois tipos diferentes com esse nome existem, mas eles não estão relacionados.]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
|
||||
@@ -144,7 +144,7 @@
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[A computed property name in a class property declaration must refer to an expression whose type is a literal type or a 'unique symbol' type.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Имя вычисляемого свойства в объявлении свойств класса должно ссылаться на выражение, тип которого — литерал или уникальный символ.]]></Val>
|
||||
<Val><![CDATA[Имя вычисляемого свойства в объявлении свойств класса должно ссылаться на выражение, тип которого — литерал или "unique symbol".]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
@@ -153,7 +153,7 @@
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[A computed property name in a method overload must refer to an expression whose type is a literal type or a 'unique symbol' type.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Имя вычисляемого свойства в перегрузке метода должно ссылаться на выражение, тип которого — литерал или уникальный символ.]]></Val>
|
||||
<Val><![CDATA[Имя вычисляемого свойства в перегрузке метода должно ссылаться на выражение, тип которого — литерал или "unique symbol".]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
@@ -162,7 +162,7 @@
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[A computed property name in a type literal must refer to an expression whose type is a literal type or a 'unique symbol' type.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Имя вычисляемого свойства в литерале должно ссылаться на выражение, тип которого — литерал или уникальный символ.]]></Val>
|
||||
<Val><![CDATA[Имя вычисляемого свойства в литерале должно ссылаться на выражение, тип которого — литерал или "unique symbol".]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
@@ -171,7 +171,7 @@
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[A computed property name in an ambient context must refer to an expression whose type is a literal type or a 'unique symbol' type.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Имя вычисляемого свойства в окружающем контексте должно ссылаться на выражение, тип которого — литерал или уникальный символ.]]></Val>
|
||||
<Val><![CDATA[Имя вычисляемого свойства в окружающем контексте должно ссылаться на выражение, тип которого — литерал или "unique symbol".]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
@@ -180,7 +180,7 @@
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[A computed property name in an interface must refer to an expression whose type is a literal type or a 'unique symbol' type.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Имя вычисляемого свойства в интерфейсе должно ссылаться на выражение, тип которого — литерал или уникальный символ.]]></Val>
|
||||
<Val><![CDATA[Имя вычисляемого свойства в интерфейсе должно ссылаться на выражение, тип которого — литерал или "unique symbol".]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
@@ -531,7 +531,7 @@
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[A property of a class whose type is a 'unique symbol' type must be both 'static' and 'readonly'.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Свойство класса, тип которого — уникальный символ, должно быть задано как "static" и "readonly".]]></Val>
|
||||
<Val><![CDATA[Свойство класса, тип которого — "unique symbol", должно быть задано как "static" и "readonly".]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
@@ -540,7 +540,7 @@
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[A property of an interface or type literal whose type is a 'unique symbol' type must be 'readonly'.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Свойство интерфейса или литерала, тип которого — уникальный символ, должно быть задано как "readonly".]]></Val>
|
||||
<Val><![CDATA[Свойство интерфейса или литерала, тип которого — "unique symbol", должно быть задано как "readonly".]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
@@ -795,7 +795,7 @@
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[A variable whose type is a 'unique symbol' type must be 'const'.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Переменная типа "уникальный символ" должна быть задана как "const".]]></Val>
|
||||
<Val><![CDATA[Переменная, тип которой — "unique symbol", должна быть задана как "const".]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
@@ -866,8 +866,8 @@
|
||||
<Item ItemId=";Add_0_to_existing_import_declaration_from_1_90015" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Add '{0}' to existing import declaration from "{1}"]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Добавьте "{0}" в существующее объявление импорта из "{1}".]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Добавьте "{0}" в существующее объявление импорта из "{1}"]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Add '{0}' to existing import declaration from "{1}".]]></Val>
|
||||
@@ -878,8 +878,8 @@
|
||||
<Item ItemId=";Add_index_signature_for_property_0_90017" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Add index signature for property '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Добавьте сигнатуру индекса для свойства "{0}".]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Добавьте сигнатуру индекса для свойства "{0}"]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Add index signature for property '{0}'.]]></Val>
|
||||
@@ -890,8 +890,8 @@
|
||||
<Item ItemId=";Add_missing_super_call_90001" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Add missing 'super()' call]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Добавьте отсутствующий вызов "super()".]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Добавьте отсутствующий вызов "super()"]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Add missing 'super()' call.]]></Val>
|
||||
@@ -902,8 +902,8 @@
|
||||
<Item ItemId=";Add_this_to_unresolved_variable_90008" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Add 'this.' to unresolved variable]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Добавление "this." к неразрешенной переменной.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Добавьте "this." к неразрешенной переменной]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Add 'this.' to unresolved variable.]]></Val>
|
||||
@@ -914,6 +914,9 @@
|
||||
<Item ItemId=";Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript__5068" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Adding a tsconfig.json file will help organize projects that contain both TypeScript and JavaScript files. Learn more at https://aka.ms/tsconfig.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Добавление файла tsconfig.json поможет организовать проекты, содержащие файлы TypeScript и JavaScript. Дополнительные сведения: https://aka.ms/tsconfig.]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
@@ -1544,8 +1547,8 @@
|
||||
<Item ItemId=";Call_decorator_expression_90028" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Call decorator expression]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Вызов выражения-декоратора.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Вызовите выражение декоратора]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Call decorator expression.]]></Val>
|
||||
@@ -1961,8 +1964,8 @@
|
||||
<Item ItemId=";Change_0_to_1_90014" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Change '{0}' to '{1}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Замена "{0}" на "{1}".]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Измените "{0}" на "{1}"]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Change '{0}' to '{1}'.]]></Val>
|
||||
@@ -1985,8 +1988,8 @@
|
||||
<Item ItemId=";Change_spelling_to_0_90022" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Change spelling to '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Изменить правописание на "{0}".]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Измените написание на "{0}"]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Change spelling to '{0}'.]]></Val>
|
||||
@@ -2363,8 +2366,8 @@
|
||||
<Item ItemId=";Declare_method_0_90023" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Declare method '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Объявите метод "{0}".]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Объявите метод "{0}"]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Declare method '{0}'.]]></Val>
|
||||
@@ -2375,8 +2378,8 @@
|
||||
<Item ItemId=";Declare_property_0_90016" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Declare property '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Объявите свойство "{0}".]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Объявите свойство "{0}"]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Declare property '{0}'.]]></Val>
|
||||
@@ -2387,8 +2390,8 @@
|
||||
<Item ItemId=";Declare_static_method_0_90024" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Declare static method '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Объявите статический метод "{0}".]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Объявите статический метод "{0}"]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Declare static method '{0}'.]]></Val>
|
||||
@@ -2399,8 +2402,8 @@
|
||||
<Item ItemId=";Declare_static_property_0_90027" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Declare static property '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Объявление статического свойства "{0}".]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Объявите статическое свойство "{0}"]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Declare static property '{0}'.]]></Val>
|
||||
@@ -2483,8 +2486,8 @@
|
||||
<Item ItemId=";Disable_checking_for_this_file_90018" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Disable checking for this file]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Отключить проверку для этого файла.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Отключите проверку для этого файла]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Disable checking for this file.]]></Val>
|
||||
@@ -3755,8 +3758,8 @@
|
||||
<Item ItemId=";Ignore_this_error_message_90019" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Ignore this error message]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Пропустить это сообщение об ошибке.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Пропустите это сообщение об ошибке]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Ignore this error message.]]></Val>
|
||||
@@ -3779,8 +3782,8 @@
|
||||
<Item ItemId=";Implement_interface_0_90006" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Implement interface '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Реализуйте интерфейс "{0}".]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Реализуйте интерфейс "{0}"]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Implement interface '{0}'.]]></Val>
|
||||
@@ -3800,8 +3803,8 @@
|
||||
<Item ItemId=";Import_0_from_module_1_90013" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Import '{0}' from module "{1}"]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Импорт "{0}" из модуля "{1}".]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Импортируйте "{0}" из модуля "{1}"]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Import '{0}' from module "{1}".]]></Val>
|
||||
@@ -3953,8 +3956,8 @@
|
||||
<Item ItemId=";Infer_parameter_types_from_usage_95012" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Infer parameter types from usage]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Вывод типов параметров на основе использования.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Выведите типы параметров на основании их использования]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Infer parameter types from usage.]]></Val>
|
||||
@@ -3965,8 +3968,8 @@
|
||||
<Item ItemId=";Infer_type_of_0_from_usage_95011" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Infer type of '{0}' from usage]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Вывод типа "{0}" на основе использования.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Выведите тип "{0}" на основании его использования]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Infer type of '{0}' from usage.]]></Val>
|
||||
@@ -3977,8 +3980,8 @@
|
||||
<Item ItemId=";Initialize_property_0_in_the_constructor_90020" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Initialize property '{0}' in the constructor]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Инициализировать свойство "{0}" в конструкторе.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Инициализируйте свойство "{0}" в конструкторе]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Initialize property '{0}' in the constructor.]]></Val>
|
||||
@@ -3989,8 +3992,8 @@
|
||||
<Item ItemId=";Initialize_static_property_0_90021" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Initialize static property '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Инициализировать статическое свойство "{0}".]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Инициализируйте статическое свойство "{0}"]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Initialize static property '{0}'.]]></Val>
|
||||
@@ -4526,8 +4529,8 @@
|
||||
<Item ItemId=";Make_super_call_the_first_statement_in_the_constructor_90002" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Make 'super()' call the first statement in the constructor]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Сделайте вызов "super()" первой инструкцией в конструкторе.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Сделайте вызов "super()" первой инструкцией в конструкторе]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Make 'super()' call the first statement in the constructor.]]></Val>
|
||||
@@ -4748,6 +4751,12 @@
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Multiple_consecutive_numeric_separators_are_not_permitted_6189" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Multiple consecutive numeric separators are not permitted.]]></Val>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Multiple_constructor_implementations_are_not_allowed_2392" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Multiple constructor implementations are not allowed.]]></Val>
|
||||
@@ -4838,6 +4847,12 @@
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Numeric_separators_are_not_allowed_here_6188" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Numeric separators are not allowed here.]]></Val>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Object_is_possibly_null_2531" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Object is possibly 'null'.]]></Val>
|
||||
@@ -5444,8 +5459,8 @@
|
||||
<Item ItemId=";Prefix_0_with_an_underscore_90025" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Prefix '{0}' with an underscore]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Добавьте к "{0}" префикс — символ подчеркивания.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Добавьте к "{0}" префикс — символ подчеркивания]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Prefix '{0}' with an underscore.]]></Val>
|
||||
@@ -5900,8 +5915,8 @@
|
||||
<Item ItemId=";Remove_declaration_for_Colon_0_90004" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Remove declaration for: '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Удалите объявление: "{0}".]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Удалите объявление: "{0}"]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Remove declaration for: '{0}'.]]></Val>
|
||||
@@ -6329,8 +6344,8 @@
|
||||
<Item ItemId=";Rewrite_as_the_indexed_access_type_0_90026" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Rewrite as the indexed access type '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Необходима перезапись с типом индексного доступа {0}.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Перезапишите как тип с индексным доступом "{0}"]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Rewrite as the indexed access type '{0}'.]]></Val>
|
||||
@@ -6449,6 +6464,9 @@
|
||||
<Item ItemId=";Specify_ECMAScript_target_version_Colon_ES3_default_ES5_ES2015_ES2016_ES2017_ES2018_or_ESNEXT_6015" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017','ES2018' or 'ESNEXT'.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Укажите целевую версию ECMAScript: "ES3" (по умолчанию), "ES5", "ES2015", "ES2016", "ES2017", "ES2018" или "ESNEXT".]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
@@ -6557,6 +6575,9 @@
|
||||
<Item ItemId=";Starting_compilation_in_watch_mode_6031" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Starting compilation in watch mode...]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Запуск компиляции в режиме наблюдения...]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
@@ -7412,6 +7433,9 @@
|
||||
<Item ItemId=";Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated_2719" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Type '{0}' is not assignable to type '{1}'. Two different types with this name exist, but they are unrelated.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Тип "{0}" невозможно присвоить типу "{1}". Существует два разных типа с таким именем, но они не связаны.]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
@@ -8922,7 +8946,7 @@
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA['unique symbol' types are not allowed here.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Типы "уникальный символ" здесь запрещены.]]></Val>
|
||||
<Val><![CDATA[Типы "unique symbol" здесь запрещены.]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
@@ -8931,7 +8955,7 @@
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA['unique symbol' types are only allowed on variables in a variable statement.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Типы "уникальный символ" разрешены только в переменных в операторе с переменной.]]></Val>
|
||||
<Val><![CDATA[Типы "unique symbol" разрешены только у переменных в операторах с переменными.]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
@@ -8940,7 +8964,7 @@
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA['unique symbol' types may not be used on a variable declaration with a binding name.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Типы "уникальный символ" невозможно использовать в объявлении переменной с именем привязки.]]></Val>
|
||||
<Val><![CDATA[Типы "unique symbol" невозможно использовать в объявлении переменной с именем привязки.]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
|
||||
@@ -860,8 +860,8 @@
|
||||
<Item ItemId=";Add_0_to_existing_import_declaration_from_1_90015" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Add '{0}' to existing import declaration from "{1}"]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA['{0}' öğesini "{1}" konumundaki mevcut içeri aktarma bildirimine ekleyin.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA['{0}' öğesini "{1}" konumundaki mevcut içeri aktarma bildirimine ekle]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Add '{0}' to existing import declaration from "{1}".]]></Val>
|
||||
@@ -872,8 +872,8 @@
|
||||
<Item ItemId=";Add_index_signature_for_property_0_90017" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Add index signature for property '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA['{0}' özelliği için dizin imzası ekleyin.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA['{0}' özelliği için dizin imzası ekle]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Add index signature for property '{0}'.]]></Val>
|
||||
@@ -884,8 +884,8 @@
|
||||
<Item ItemId=";Add_missing_super_call_90001" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Add missing 'super()' call]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Eksik 'super()' çağrısını ekleyin.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Eksik 'super()' çağrısını ekle]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Add missing 'super()' call.]]></Val>
|
||||
@@ -896,8 +896,8 @@
|
||||
<Item ItemId=";Add_this_to_unresolved_variable_90008" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Add 'this.' to unresolved variable]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Çözümlenmemiş değişkene 'this.' ekleyin.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Çözümlenmemiş değişkene 'this.' ekle]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Add 'this.' to unresolved variable.]]></Val>
|
||||
@@ -908,6 +908,9 @@
|
||||
<Item ItemId=";Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript__5068" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Adding a tsconfig.json file will help organize projects that contain both TypeScript and JavaScript files. Learn more at https://aka.ms/tsconfig.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Bir tsconfig.json dosyası eklemek, hem TypeScript hem de JavaScript dosyaları içeren projeleri düzenlemenize yardımcı olur. Daha fazla bilgi edinmek için bkz. https://aka.ms/tsconfig.]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
@@ -1538,8 +1541,8 @@
|
||||
<Item ItemId=";Call_decorator_expression_90028" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Call decorator expression]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Dekoratör ifadesini çağırın.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Dekoratör ifadesini çağır]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Call decorator expression.]]></Val>
|
||||
@@ -1955,8 +1958,8 @@
|
||||
<Item ItemId=";Change_0_to_1_90014" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Change '{0}' to '{1}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA['{0}' değerini '{1}' olarak değiştirin.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA['{0}' değerini '{1}' olarak değiştir]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Change '{0}' to '{1}'.]]></Val>
|
||||
@@ -1979,8 +1982,8 @@
|
||||
<Item ItemId=";Change_spelling_to_0_90022" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Change spelling to '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Yazımı '{0}' olarak değiştirin.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Yazımı '{0}' olarak değiştir]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Change spelling to '{0}'.]]></Val>
|
||||
@@ -2357,8 +2360,8 @@
|
||||
<Item ItemId=";Declare_method_0_90023" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Declare method '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA['{0}' metodunu bildirin.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA['{0}' metodunu bildir]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Declare method '{0}'.]]></Val>
|
||||
@@ -2369,8 +2372,8 @@
|
||||
<Item ItemId=";Declare_property_0_90016" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Declare property '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA['{0}' özelliğini bildirin.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA['{0}' özelliğini bildir]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Declare property '{0}'.]]></Val>
|
||||
@@ -2381,8 +2384,8 @@
|
||||
<Item ItemId=";Declare_static_method_0_90024" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Declare static method '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA['{0}' statik metodunu bildirin.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA['{0}' statik metodunu bildir]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Declare static method '{0}'.]]></Val>
|
||||
@@ -2393,8 +2396,8 @@
|
||||
<Item ItemId=";Declare_static_property_0_90027" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Declare static property '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA['{0}' statik özelliğini bildirin.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA['{0}' statik özelliğini bildir]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Declare static property '{0}'.]]></Val>
|
||||
@@ -2477,8 +2480,8 @@
|
||||
<Item ItemId=";Disable_checking_for_this_file_90018" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Disable checking for this file]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Bu dosya için denetimi devre dışı bırakın.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Bu dosya için denetimi devre dışı bırak]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Disable checking for this file.]]></Val>
|
||||
@@ -3749,8 +3752,8 @@
|
||||
<Item ItemId=";Ignore_this_error_message_90019" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Ignore this error message]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Bu hata iletisini yoksayın.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Bu hata iletisini yoksay]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Ignore this error message.]]></Val>
|
||||
@@ -3773,8 +3776,8 @@
|
||||
<Item ItemId=";Implement_interface_0_90006" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Implement interface '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA['{0}' arabirimini uygulayın.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA['{0}' arabirimini uygula]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Implement interface '{0}'.]]></Val>
|
||||
@@ -3794,8 +3797,8 @@
|
||||
<Item ItemId=";Import_0_from_module_1_90013" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Import '{0}' from module "{1}"]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA["{1}" modülünden '{0}' öğesini içeri aktarın.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA["{1}" modülünden '{0}' öğesini içeri aktar]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Import '{0}' from module "{1}".]]></Val>
|
||||
@@ -3947,8 +3950,8 @@
|
||||
<Item ItemId=";Infer_parameter_types_from_usage_95012" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Infer parameter types from usage]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Parametre türlerini kullanımdan çıkarsayın.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Parametre türleri için kullanımdan çıkarım yap]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Infer parameter types from usage.]]></Val>
|
||||
@@ -3959,8 +3962,8 @@
|
||||
<Item ItemId=";Infer_type_of_0_from_usage_95011" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Infer type of '{0}' from usage]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA['{0}' türünü kullanımdan çıkarsayın.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA['{0}' türü için kullanımdan çıkarım yap]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Infer type of '{0}' from usage.]]></Val>
|
||||
@@ -3971,8 +3974,8 @@
|
||||
<Item ItemId=";Initialize_property_0_in_the_constructor_90020" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Initialize property '{0}' in the constructor]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Oluşturucu içinde '{0}' özelliğini başlatın.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Oluşturucu içinde '{0}' özelliğini başlat]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Initialize property '{0}' in the constructor.]]></Val>
|
||||
@@ -3983,8 +3986,8 @@
|
||||
<Item ItemId=";Initialize_static_property_0_90021" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Initialize static property '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA['{0}' statik özelliğini başlatın.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA['{0}' statik özelliğini başlat]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Initialize static property '{0}'.]]></Val>
|
||||
@@ -4520,8 +4523,8 @@
|
||||
<Item ItemId=";Make_super_call_the_first_statement_in_the_constructor_90002" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Make 'super()' call the first statement in the constructor]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Oluşturucudaki ilk deyime 'super()' tarafından çağrı yapılmasını sağla.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Oluşturucudaki ilk deyime 'super()' tarafından çağrı yapılmasını sağla]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Make 'super()' call the first statement in the constructor.]]></Val>
|
||||
@@ -4742,6 +4745,12 @@
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Multiple_consecutive_numeric_separators_are_not_permitted_6189" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Multiple consecutive numeric separators are not permitted.]]></Val>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Multiple_constructor_implementations_are_not_allowed_2392" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Multiple constructor implementations are not allowed.]]></Val>
|
||||
@@ -4832,6 +4841,12 @@
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Numeric_separators_are_not_allowed_here_6188" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Numeric separators are not allowed here.]]></Val>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Object_is_possibly_null_2531" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Object is possibly 'null'.]]></Val>
|
||||
@@ -5438,8 +5453,8 @@
|
||||
<Item ItemId=";Prefix_0_with_an_underscore_90025" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Prefix '{0}' with an underscore]]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA['{0}' için ön ek olarak alt çizgi kullanın.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA['{0}' için ön ek olarak alt çizgi kullan]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Prefix '{0}' with an underscore.]]></Val>
|
||||
@@ -5894,8 +5909,8 @@
|
||||
<Item ItemId=";Remove_declaration_for_Colon_0_90004" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Remove declaration for: '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA['{0}' bildirimini kaldırın.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA['{0}' bildirimini kaldır]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Remove declaration for: '{0}'.]]></Val>
|
||||
@@ -6323,8 +6338,8 @@
|
||||
<Item ItemId=";Rewrite_as_the_indexed_access_type_0_90026" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Rewrite as the indexed access type '{0}']]></Val>
|
||||
<Tgt Cat="Text" Stat="Update" Orig="New">
|
||||
<Val><![CDATA[Dizine eklenmiş erişim türü '{0}' olarak yeniden yazın.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Dizine eklenmiş erişim türü '{0}' olarak yeniden yaz]]></Val>
|
||||
</Tgt>
|
||||
<Prev Cat="Text">
|
||||
<Val><![CDATA[Rewrite as the indexed access type '{0}'.]]></Val>
|
||||
@@ -6443,6 +6458,9 @@
|
||||
<Item ItemId=";Specify_ECMAScript_target_version_Colon_ES3_default_ES5_ES2015_ES2016_ES2017_ES2018_or_ESNEXT_6015" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017','ES2018' or 'ESNEXT'.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[ECMAScript hedef sürümünü belirleyin: 'ES3' (varsayılan), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018' ya da 'ESNEXT'.]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
@@ -6551,6 +6569,9 @@
|
||||
<Item ItemId=";Starting_compilation_in_watch_mode_6031" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Starting compilation in watch mode...]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Derleme, izleme modunda başlatılıyor...]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
@@ -7406,6 +7427,9 @@
|
||||
<Item ItemId=";Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated_2719" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Type '{0}' is not assignable to type '{1}'. Two different types with this name exist, but they are unrelated.]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA['{0}' türü '{1}' türüne atanamaz. Bu ada sahip iki farklı tür mevcut, ancak bu türler birbiriyle ilişkisiz.]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
|
||||
@@ -547,9 +547,11 @@ namespace ts.server {
|
||||
}
|
||||
switch (response.kind) {
|
||||
case ActionSet:
|
||||
project.resolutionCache.clear();
|
||||
this.typingsCache.updateTypingsForProject(response.projectName, response.compilerOptions, response.typeAcquisition, response.unresolvedImports, response.typings);
|
||||
break;
|
||||
case ActionInvalidate:
|
||||
project.resolutionCache.clear();
|
||||
this.typingsCache.deleteTypingsForProject(response.projectName);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -21,8 +21,8 @@ namespace ts.codefix {
|
||||
getAllCodeActions: context => {
|
||||
const seenNames = createMap<true>();
|
||||
return codeFixAll(context, errorCodes, (changes, diag) => {
|
||||
const { newLineCharacter, program } = context;
|
||||
const info = getInfo(diag.file!, diag.start!, context.program.getTypeChecker());
|
||||
const { program } = context;
|
||||
const info = getInfo(diag.file!, diag.start!, program.getTypeChecker());
|
||||
if (!info) return;
|
||||
const { classDeclaration, classDeclarationSourceFile, inJs, makeStatic, token, call } = info;
|
||||
if (!addToSeen(seenNames, token.text)) {
|
||||
@@ -31,15 +31,15 @@ namespace ts.codefix {
|
||||
|
||||
// Always prefer to add a method declaration if possible.
|
||||
if (call) {
|
||||
addMethodDeclaration(changes, classDeclarationSourceFile, classDeclaration, token, call, newLineCharacter, makeStatic, inJs);
|
||||
addMethodDeclaration(changes, classDeclarationSourceFile, classDeclaration, token, call, makeStatic, inJs);
|
||||
}
|
||||
else {
|
||||
if (inJs) {
|
||||
addMissingMemberInJs(changes, classDeclarationSourceFile, classDeclaration, token.text, makeStatic, newLineCharacter);
|
||||
addMissingMemberInJs(changes, classDeclarationSourceFile, classDeclaration, token.text, makeStatic);
|
||||
}
|
||||
else {
|
||||
const typeNode = getTypeNode(program.getTypeChecker(), classDeclaration, token);
|
||||
addPropertyDeclaration(changes, classDeclarationSourceFile, classDeclaration, token.text, typeNode, makeStatic, newLineCharacter);
|
||||
addPropertyDeclaration(changes, classDeclarationSourceFile, classDeclaration, token.text, typeNode, makeStatic);
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -96,20 +96,20 @@ namespace ts.codefix {
|
||||
}
|
||||
|
||||
function getActionsForAddMissingMemberInJavaScriptFile(context: CodeFixContext, classDeclarationSourceFile: SourceFile, classDeclaration: ClassLikeDeclaration, tokenName: string, makeStatic: boolean): CodeFixAction | undefined {
|
||||
const changes = textChanges.ChangeTracker.with(context, t => addMissingMemberInJs(t, classDeclarationSourceFile, classDeclaration, tokenName, makeStatic, context.newLineCharacter));
|
||||
const changes = textChanges.ChangeTracker.with(context, t => addMissingMemberInJs(t, classDeclarationSourceFile, classDeclaration, tokenName, makeStatic));
|
||||
if (changes.length === 0) return undefined;
|
||||
const description = formatStringFromArgs(getLocaleSpecificMessage(makeStatic ? Diagnostics.Initialize_static_property_0 : Diagnostics.Initialize_property_0_in_the_constructor), [tokenName]);
|
||||
return { description, changes, fixId };
|
||||
}
|
||||
|
||||
function addMissingMemberInJs(changeTracker: textChanges.ChangeTracker, classDeclarationSourceFile: SourceFile, classDeclaration: ClassLikeDeclaration, tokenName: string, makeStatic: boolean, newLineCharacter: string): void {
|
||||
function addMissingMemberInJs(changeTracker: textChanges.ChangeTracker, classDeclarationSourceFile: SourceFile, classDeclaration: ClassLikeDeclaration, tokenName: string, makeStatic: boolean): void {
|
||||
if (makeStatic) {
|
||||
if (classDeclaration.kind === SyntaxKind.ClassExpression) {
|
||||
return;
|
||||
}
|
||||
const className = classDeclaration.name.getText();
|
||||
const staticInitialization = initializePropertyToUndefined(createIdentifier(className), tokenName);
|
||||
changeTracker.insertNodeAfter(classDeclarationSourceFile, classDeclaration, staticInitialization, { prefix: newLineCharacter, suffix: newLineCharacter });
|
||||
changeTracker.insertNodeAfter(classDeclarationSourceFile, classDeclaration, staticInitialization);
|
||||
}
|
||||
else {
|
||||
const classConstructor = getFirstConstructorWithBody(classDeclaration);
|
||||
@@ -117,7 +117,7 @@ namespace ts.codefix {
|
||||
return;
|
||||
}
|
||||
const propertyInitialization = initializePropertyToUndefined(createThis(), tokenName);
|
||||
changeTracker.insertNodeBefore(classDeclarationSourceFile, classConstructor.body.getLastToken(), propertyInitialization, { suffix: newLineCharacter });
|
||||
changeTracker.insertNodeAtConstructorEnd(classDeclarationSourceFile, classConstructor, propertyInitialization);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -142,13 +142,13 @@ namespace ts.codefix {
|
||||
return typeNode || createKeywordTypeNode(SyntaxKind.AnyKeyword);
|
||||
}
|
||||
|
||||
function createAddPropertyDeclarationAction(context: CodeFixContext, classDeclarationSourceFile: SourceFile, classDeclaration: ClassLikeDeclaration, makeStatic: boolean, tokenName: string, typeNode: TypeNode): CodeFixAction {
|
||||
function createAddPropertyDeclarationAction(context: textChanges.TextChangesContext, classDeclarationSourceFile: SourceFile, classDeclaration: ClassLikeDeclaration, makeStatic: boolean, tokenName: string, typeNode: TypeNode): CodeFixAction {
|
||||
const description = formatStringFromArgs(getLocaleSpecificMessage(makeStatic ? Diagnostics.Declare_static_property_0 : Diagnostics.Declare_property_0), [tokenName]);
|
||||
const changes = textChanges.ChangeTracker.with(context, t => addPropertyDeclaration(t, classDeclarationSourceFile, classDeclaration, tokenName, typeNode, makeStatic, context.newLineCharacter));
|
||||
const changes = textChanges.ChangeTracker.with(context, t => addPropertyDeclaration(t, classDeclarationSourceFile, classDeclaration, tokenName, typeNode, makeStatic));
|
||||
return { description, changes, fixId };
|
||||
}
|
||||
|
||||
function addPropertyDeclaration(changeTracker: textChanges.ChangeTracker, classDeclarationSourceFile: SourceFile, classDeclaration: ClassLikeDeclaration, tokenName: string, typeNode: TypeNode, makeStatic: boolean, newLineCharacter: string): void {
|
||||
function addPropertyDeclaration(changeTracker: textChanges.ChangeTracker, classDeclarationSourceFile: SourceFile, classDeclaration: ClassLikeDeclaration, tokenName: string, typeNode: TypeNode, makeStatic: boolean): void {
|
||||
const property = createProperty(
|
||||
/*decorators*/ undefined,
|
||||
/*modifiers*/ makeStatic ? [createToken(SyntaxKind.StaticKeyword)] : undefined,
|
||||
@@ -156,10 +156,10 @@ namespace ts.codefix {
|
||||
/*questionToken*/ undefined,
|
||||
typeNode,
|
||||
/*initializer*/ undefined);
|
||||
changeTracker.insertNodeAtClassStart(classDeclarationSourceFile, classDeclaration, property, newLineCharacter);
|
||||
changeTracker.insertNodeAtClassStart(classDeclarationSourceFile, classDeclaration, property);
|
||||
}
|
||||
|
||||
function createAddIndexSignatureAction(context: CodeFixContext, classDeclarationSourceFile: SourceFile, classDeclaration: ClassLikeDeclaration, tokenName: string, typeNode: TypeNode): CodeFixAction {
|
||||
function createAddIndexSignatureAction(context: textChanges.TextChangesContext, classDeclarationSourceFile: SourceFile, classDeclaration: ClassLikeDeclaration, tokenName: string, typeNode: TypeNode): CodeFixAction {
|
||||
// Index signatures cannot have the static modifier.
|
||||
const stringTypeNode = createKeywordTypeNode(SyntaxKind.StringKeyword);
|
||||
const indexingParameter = createParameter(
|
||||
@@ -176,19 +176,19 @@ namespace ts.codefix {
|
||||
[indexingParameter],
|
||||
typeNode);
|
||||
|
||||
const changes = textChanges.ChangeTracker.with(context, t => t.insertNodeAtClassStart(classDeclarationSourceFile, classDeclaration, indexSignature, context.newLineCharacter));
|
||||
const changes = textChanges.ChangeTracker.with(context, t => t.insertNodeAtClassStart(classDeclarationSourceFile, classDeclaration, indexSignature));
|
||||
// No fixId here because code-fix-all currently only works on adding individual named properties.
|
||||
return { description: formatStringFromArgs(getLocaleSpecificMessage(Diagnostics.Add_index_signature_for_property_0), [tokenName]), changes, fixId: undefined };
|
||||
}
|
||||
|
||||
function getActionForMethodDeclaration(context: CodeFixContext, classDeclarationSourceFile: SourceFile, classDeclaration: ClassLikeDeclaration, token: Identifier, callExpression: CallExpression, makeStatic: boolean, inJs: boolean): CodeFixAction | undefined {
|
||||
function getActionForMethodDeclaration(context: textChanges.TextChangesContext, classDeclarationSourceFile: SourceFile, classDeclaration: ClassLikeDeclaration, token: Identifier, callExpression: CallExpression, makeStatic: boolean, inJs: boolean): CodeFixAction | undefined {
|
||||
const description = formatStringFromArgs(getLocaleSpecificMessage(makeStatic ? Diagnostics.Declare_static_method_0 : Diagnostics.Declare_method_0), [token.text]);
|
||||
const changes = textChanges.ChangeTracker.with(context, t => addMethodDeclaration(t, classDeclarationSourceFile, classDeclaration, token, callExpression, context.newLineCharacter, makeStatic, inJs));
|
||||
const changes = textChanges.ChangeTracker.with(context, t => addMethodDeclaration(t, classDeclarationSourceFile, classDeclaration, token, callExpression, makeStatic, inJs));
|
||||
return { description, changes, fixId };
|
||||
}
|
||||
|
||||
function addMethodDeclaration(changeTracker: textChanges.ChangeTracker, classDeclarationSourceFile: SourceFile, classDeclaration: ClassLikeDeclaration, token: Identifier, callExpression: CallExpression, newLineCharacter: string, makeStatic: boolean, inJs: boolean) {
|
||||
function addMethodDeclaration(changeTracker: textChanges.ChangeTracker, classDeclarationSourceFile: SourceFile, classDeclaration: ClassLikeDeclaration, token: Identifier, callExpression: CallExpression, makeStatic: boolean, inJs: boolean) {
|
||||
const methodDeclaration = createMethodFromCallExpression(callExpression, token.text, inJs, makeStatic);
|
||||
changeTracker.insertNodeAtClassStart(classDeclarationSourceFile, classDeclaration, methodDeclaration, newLineCharacter);
|
||||
changeTracker.insertNodeAtClassStart(classDeclarationSourceFile, classDeclaration, methodDeclaration);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,12 +10,12 @@ namespace ts.codefix {
|
||||
getCodeActions(context) {
|
||||
const { program, sourceFile, span } = context;
|
||||
const changes = textChanges.ChangeTracker.with(context, t =>
|
||||
addMissingMembers(getClass(sourceFile, span.start), sourceFile, program.getTypeChecker(), context.newLineCharacter, t));
|
||||
addMissingMembers(getClass(sourceFile, span.start), sourceFile, program.getTypeChecker(), t));
|
||||
return changes.length === 0 ? undefined : [{ description: getLocaleSpecificMessage(Diagnostics.Implement_inherited_abstract_class), changes, fixId }];
|
||||
},
|
||||
fixIds: [fixId],
|
||||
getAllCodeActions: context => codeFixAll(context, errorCodes, (changes, diag) => {
|
||||
addMissingMembers(getClass(diag.file!, diag.start!), context.sourceFile, context.program.getTypeChecker(), context.newLineCharacter, changes);
|
||||
addMissingMembers(getClass(diag.file!, diag.start!), context.sourceFile, context.program.getTypeChecker(), changes);
|
||||
}),
|
||||
});
|
||||
|
||||
@@ -28,7 +28,7 @@ namespace ts.codefix {
|
||||
return classDeclaration as ClassLikeDeclaration;
|
||||
}
|
||||
|
||||
function addMissingMembers(classDeclaration: ClassLikeDeclaration, sourceFile: SourceFile, checker: TypeChecker, newLineCharacter: string, changeTracker: textChanges.ChangeTracker): void {
|
||||
function addMissingMembers(classDeclaration: ClassLikeDeclaration, sourceFile: SourceFile, checker: TypeChecker, changeTracker: textChanges.ChangeTracker): void {
|
||||
const extendsNode = getClassExtendsHeritageClauseElement(classDeclaration);
|
||||
const instantiatedExtendsType = checker.getTypeAtLocation(extendsNode);
|
||||
|
||||
@@ -36,7 +36,7 @@ namespace ts.codefix {
|
||||
// so duplicates cannot occur.
|
||||
const abstractAndNonPrivateExtendsSymbols = checker.getPropertiesOfType(instantiatedExtendsType).filter(symbolPointsToNonPrivateAndAbstractMember);
|
||||
|
||||
createMissingMemberNodes(classDeclaration, abstractAndNonPrivateExtendsSymbols, checker, member => changeTracker.insertNodeAtClassStart(sourceFile, classDeclaration, member, newLineCharacter));
|
||||
createMissingMemberNodes(classDeclaration, abstractAndNonPrivateExtendsSymbols, checker, member => changeTracker.insertNodeAtClassStart(sourceFile, classDeclaration, member));
|
||||
}
|
||||
|
||||
function symbolPointsToNonPrivateAndAbstractMember(symbol: Symbol): boolean {
|
||||
|
||||
@@ -5,11 +5,11 @@ namespace ts.codefix {
|
||||
registerCodeFix({
|
||||
errorCodes,
|
||||
getCodeActions(context) {
|
||||
const { newLineCharacter, program, sourceFile, span } = context;
|
||||
const { program, sourceFile, span } = context;
|
||||
const classDeclaration = getClass(sourceFile, span.start);
|
||||
const checker = program.getTypeChecker();
|
||||
return mapDefined<ExpressionWithTypeArguments, CodeFixAction>(getClassImplementsHeritageClauseElements(classDeclaration), implementedTypeNode => {
|
||||
const changes = textChanges.ChangeTracker.with(context, t => addMissingDeclarations(checker, implementedTypeNode, sourceFile, classDeclaration, newLineCharacter, t));
|
||||
const changes = textChanges.ChangeTracker.with(context, t => addMissingDeclarations(checker, implementedTypeNode, sourceFile, classDeclaration, t));
|
||||
if (changes.length === 0) return undefined;
|
||||
const description = formatStringFromArgs(getLocaleSpecificMessage(Diagnostics.Implement_interface_0), [implementedTypeNode.getText()]);
|
||||
return { description, changes, fixId };
|
||||
@@ -22,7 +22,7 @@ namespace ts.codefix {
|
||||
const classDeclaration = getClass(diag.file!, diag.start!);
|
||||
if (addToSeen(seenClassDeclarations, getNodeId(classDeclaration))) {
|
||||
for (const implementedTypeNode of getClassImplementsHeritageClauseElements(classDeclaration)) {
|
||||
addMissingDeclarations(context.program.getTypeChecker(), implementedTypeNode, diag.file!, classDeclaration, context.newLineCharacter, changes);
|
||||
addMissingDeclarations(context.program.getTypeChecker(), implementedTypeNode, diag.file!, classDeclaration, changes);
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -40,7 +40,6 @@ namespace ts.codefix {
|
||||
implementedTypeNode: ExpressionWithTypeArguments,
|
||||
sourceFile: SourceFile,
|
||||
classDeclaration: ClassLikeDeclaration,
|
||||
newLineCharacter: string,
|
||||
changeTracker: textChanges.ChangeTracker
|
||||
): void {
|
||||
// Note that this is ultimately derived from a map indexed by symbol names,
|
||||
@@ -58,12 +57,12 @@ namespace ts.codefix {
|
||||
createMissingIndexSignatureDeclaration(implementedType, IndexKind.String);
|
||||
}
|
||||
|
||||
createMissingMemberNodes(classDeclaration, nonPrivateMembers, checker, member => changeTracker.insertNodeAtClassStart(sourceFile, classDeclaration, member, newLineCharacter));
|
||||
createMissingMemberNodes(classDeclaration, nonPrivateMembers, checker, member => changeTracker.insertNodeAtClassStart(sourceFile, classDeclaration, member));
|
||||
|
||||
function createMissingIndexSignatureDeclaration(type: InterfaceType, kind: IndexKind): void {
|
||||
const indexInfoOfKind = checker.getIndexInfoOfType(type, kind);
|
||||
if (indexInfoOfKind) {
|
||||
changeTracker.insertNodeAtClassStart(sourceFile, classDeclaration, checker.indexInfoToIndexSignatureDeclaration(indexInfoOfKind, kind, classDeclaration), newLineCharacter);
|
||||
changeTracker.insertNodeAtClassStart(sourceFile, classDeclaration, checker.indexInfoToIndexSignatureDeclaration(indexInfoOfKind, kind, classDeclaration));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,30 +5,30 @@ namespace ts.codefix {
|
||||
registerCodeFix({
|
||||
errorCodes,
|
||||
getCodeActions(context) {
|
||||
const { sourceFile } = context;
|
||||
const nodes = getNodes(sourceFile, context.span.start);
|
||||
const { sourceFile, span } = context;
|
||||
const nodes = getNodes(sourceFile, span.start);
|
||||
if (!nodes) return undefined;
|
||||
const { constructor, superCall } = nodes;
|
||||
const changes = textChanges.ChangeTracker.with(context, t => doChange(t, sourceFile, constructor, superCall, context.newLineCharacter));
|
||||
const changes = textChanges.ChangeTracker.with(context, t => doChange(t, sourceFile, constructor, superCall));
|
||||
return [{ description: getLocaleSpecificMessage(Diagnostics.Make_super_call_the_first_statement_in_the_constructor), changes, fixId }];
|
||||
},
|
||||
fixIds: [fixId],
|
||||
getAllCodeActions(context) {
|
||||
const { newLineCharacter, sourceFile } = context;
|
||||
const { sourceFile } = context;
|
||||
const seenClasses = createMap<true>(); // Ensure we only do this once per class.
|
||||
return codeFixAll(context, errorCodes, (changes, diag) => {
|
||||
const nodes = getNodes(diag.file!, diag.start!);
|
||||
if (!nodes) return;
|
||||
const { constructor, superCall } = nodes;
|
||||
if (addToSeen(seenClasses, getNodeId(constructor.parent))) {
|
||||
doChange(changes, sourceFile, constructor, superCall, newLineCharacter);
|
||||
doChange(changes, sourceFile, constructor, superCall);
|
||||
}
|
||||
});
|
||||
},
|
||||
});
|
||||
|
||||
function doChange(changes: textChanges.ChangeTracker, sourceFile: SourceFile, constructor: ConstructorDeclaration, superCall: ExpressionStatement, newLineCharacter: string): void {
|
||||
changes.insertNodeAtConstructorStart(sourceFile, constructor, superCall, newLineCharacter);
|
||||
function doChange(changes: textChanges.ChangeTracker, sourceFile: SourceFile, constructor: ConstructorDeclaration, superCall: ExpressionStatement): void {
|
||||
changes.insertNodeAtConstructorStart(sourceFile, constructor, superCall);
|
||||
changes.deleteNode(sourceFile, superCall);
|
||||
}
|
||||
|
||||
|
||||
@@ -5,14 +5,14 @@ namespace ts.codefix {
|
||||
registerCodeFix({
|
||||
errorCodes,
|
||||
getCodeActions(context) {
|
||||
const { sourceFile } = context;
|
||||
const ctr = getNode(sourceFile, context.span.start);
|
||||
const changes = textChanges.ChangeTracker.with(context, t => doChange(t, sourceFile, ctr, context.newLineCharacter));
|
||||
const { sourceFile, span } = context;
|
||||
const ctr = getNode(sourceFile, span.start);
|
||||
const changes = textChanges.ChangeTracker.with(context, t => doChange(t, sourceFile, ctr));
|
||||
return [{ description: getLocaleSpecificMessage(Diagnostics.Add_missing_super_call), changes, fixId }];
|
||||
},
|
||||
fixIds: [fixId],
|
||||
getAllCodeActions: context => codeFixAll(context, errorCodes, (changes, diag) =>
|
||||
doChange(changes, context.sourceFile, getNode(diag.file, diag.start!), context.newLineCharacter)),
|
||||
doChange(changes, context.sourceFile, getNode(diag.file, diag.start!))),
|
||||
});
|
||||
|
||||
function getNode(sourceFile: SourceFile, pos: number): ConstructorDeclaration {
|
||||
@@ -21,8 +21,8 @@ namespace ts.codefix {
|
||||
return token.parent as ConstructorDeclaration;
|
||||
}
|
||||
|
||||
function doChange(changes: textChanges.ChangeTracker, sourceFile: SourceFile, ctr: ConstructorDeclaration, newLineCharacter: string) {
|
||||
function doChange(changes: textChanges.ChangeTracker, sourceFile: SourceFile, ctr: ConstructorDeclaration) {
|
||||
const superCall = createStatement(createCall(createSuper(), /*typeArguments*/ undefined, /*argumentsArray*/ emptyArray));
|
||||
changes.insertNodeAtConstructorStart(sourceFile, ctr, superCall, newLineCharacter);
|
||||
changes.insertNodeAtConstructorStart(sourceFile, ctr, superCall);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -257,7 +257,7 @@ namespace ts.codefix {
|
||||
}
|
||||
|
||||
function getCodeActionForNewImport(context: SymbolContext & { kind: ImportKind }, moduleSpecifier: string): ImportCodeAction {
|
||||
const { kind, sourceFile, newLineCharacter, symbolName } = context;
|
||||
const { kind, sourceFile, symbolName } = context;
|
||||
const lastImportDeclaration = findLast(sourceFile.statements, isAnyImportSyntax);
|
||||
|
||||
const moduleSpecifierWithoutQuotes = stripQuotes(moduleSpecifier);
|
||||
@@ -276,10 +276,10 @@ namespace ts.codefix {
|
||||
|
||||
const changes = ChangeTracker.with(context, changeTracker => {
|
||||
if (lastImportDeclaration) {
|
||||
changeTracker.insertNodeAfter(sourceFile, lastImportDeclaration, importDecl, { suffix: newLineCharacter });
|
||||
changeTracker.insertNodeAfter(sourceFile, lastImportDeclaration, importDecl);
|
||||
}
|
||||
else {
|
||||
changeTracker.insertNodeAt(sourceFile, getSourceFileImportLocation(sourceFile), importDecl, { suffix: `${newLineCharacter}${newLineCharacter}` });
|
||||
changeTracker.insertNodeAtTopOfFile(sourceFile, importDecl);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -170,7 +170,7 @@ namespace ts.codefix {
|
||||
}
|
||||
|
||||
const type = inferTypeForVariableFromUsage(getAccessorDeclaration.name, sourceFile, program, cancellationToken);
|
||||
const closeParenToken = getFirstChildOfKind(getAccessorDeclaration, sourceFile, SyntaxKind.CloseParenToken);
|
||||
const closeParenToken = findChildOfKind(getAccessorDeclaration, SyntaxKind.CloseParenToken, sourceFile);
|
||||
return makeFix(getAccessorDeclaration, closeParenToken.getEnd(), type, program);
|
||||
}
|
||||
|
||||
@@ -209,7 +209,7 @@ namespace ts.codefix {
|
||||
case SyntaxKind.MethodDeclaration:
|
||||
const isConstructor = containingFunction.kind === SyntaxKind.Constructor;
|
||||
const searchToken = isConstructor ?
|
||||
<Token<SyntaxKind.ConstructorKeyword>>getFirstChildOfKind(containingFunction, sourceFile, SyntaxKind.ConstructorKeyword) :
|
||||
findChildOfKind<Token<SyntaxKind.ConstructorKeyword>>(containingFunction, SyntaxKind.ConstructorKeyword, sourceFile) :
|
||||
containingFunction.name;
|
||||
if (searchToken) {
|
||||
return InferFromReference.inferTypeForParametersFromReferences(getReferences(searchToken, sourceFile, program, cancellationToken), containingFunction, program.getTypeChecker(), cancellationToken);
|
||||
@@ -305,7 +305,7 @@ namespace ts.codefix {
|
||||
}
|
||||
}
|
||||
if (types.length) {
|
||||
const type = checker.getWidenedType(checker.getUnionType(types, /*subtypeReduction*/ true));
|
||||
const type = checker.getWidenedType(checker.getUnionType(types, UnionReduction.Subtype));
|
||||
paramTypes[parameterIndex] = isRestParameter ? checker.createArrayType(type) : type;
|
||||
}
|
||||
}
|
||||
@@ -542,12 +542,12 @@ namespace ts.codefix {
|
||||
return checker.getStringType();
|
||||
}
|
||||
else if (usageContext.candidateTypes) {
|
||||
return checker.getWidenedType(checker.getUnionType(map(usageContext.candidateTypes, t => checker.getBaseTypeOfLiteralType(t)), /*subtypeReduction*/ true));
|
||||
return checker.getWidenedType(checker.getUnionType(map(usageContext.candidateTypes, t => checker.getBaseTypeOfLiteralType(t)), UnionReduction.Subtype));
|
||||
}
|
||||
else if (usageContext.properties && hasCallContext(usageContext.properties.get("then" as __String))) {
|
||||
const paramType = getParameterTypeFromCallContexts(0, usageContext.properties.get("then" as __String).callContexts, /*isRestParameter*/ false, checker);
|
||||
const types = paramType.getCallSignatures().map(c => c.getReturnType());
|
||||
return checker.createPromiseType(types.length ? checker.getUnionType(types, /*subtypeReduction*/ true) : checker.getAnyType());
|
||||
return checker.createPromiseType(types.length ? checker.getUnionType(types, UnionReduction.Subtype) : checker.getAnyType());
|
||||
}
|
||||
else if (usageContext.properties && hasCallContext(usageContext.properties.get("push" as __String))) {
|
||||
return checker.createArrayType(getParameterTypeFromCallContexts(0, usageContext.properties.get("push" as __String).callContexts, /*isRestParameter*/ false, checker));
|
||||
@@ -610,7 +610,7 @@ namespace ts.codefix {
|
||||
}
|
||||
|
||||
if (types.length) {
|
||||
const type = checker.getWidenedType(checker.getUnionType(types, /*subtypeReduction*/ true));
|
||||
const type = checker.getWidenedType(checker.getUnionType(types, UnionReduction.Subtype));
|
||||
return isRestParameter ? checker.createArrayType(type) : type;
|
||||
}
|
||||
return undefined;
|
||||
|
||||
@@ -992,7 +992,7 @@ namespace ts.FindAllReferences.Core {
|
||||
*/
|
||||
function findOwnConstructorReferences(classSymbol: Symbol, sourceFile: SourceFile, addNode: (node: Node) => void): void {
|
||||
for (const decl of classSymbol.members.get(InternalSymbolName.Constructor).declarations) {
|
||||
const ctrKeyword = ts.findChildOfKind(decl, ts.SyntaxKind.ConstructorKeyword, sourceFile)!;
|
||||
const ctrKeyword = findChildOfKind(decl, ts.SyntaxKind.ConstructorKeyword, sourceFile)!;
|
||||
Debug.assert(decl.kind === SyntaxKind.Constructor && !!ctrKeyword);
|
||||
addNode(ctrKeyword);
|
||||
}
|
||||
|
||||
@@ -50,7 +50,6 @@ namespace ts.refactor.convertFunctionToES6Class {
|
||||
|
||||
const { file: sourceFile } = context;
|
||||
const ctorSymbol = getConstructorSymbol(context);
|
||||
const newLine = context.formatContext.options.newLineCharacter;
|
||||
|
||||
const deletedNodes: Node[] = [];
|
||||
const deletes: (() => any)[] = [];
|
||||
@@ -88,7 +87,7 @@ namespace ts.refactor.convertFunctionToES6Class {
|
||||
}
|
||||
|
||||
// Because the preceding node could be touched, we need to insert nodes before delete nodes.
|
||||
changeTracker.insertNodeAfter(sourceFile, precedingNode, newClassDeclaration, { suffix: newLine });
|
||||
changeTracker.insertNodeAfter(sourceFile, precedingNode, newClassDeclaration);
|
||||
for (const deleteCallback of deletes) {
|
||||
deleteCallback();
|
||||
}
|
||||
|
||||
@@ -658,11 +658,10 @@ namespace ts.refactor.extractSymbol {
|
||||
case SyntaxKind.Constructor:
|
||||
return "constructor";
|
||||
case SyntaxKind.FunctionExpression:
|
||||
return scope.name
|
||||
? `function expression '${scope.name.text}'`
|
||||
: "anonymous function expression";
|
||||
case SyntaxKind.FunctionDeclaration:
|
||||
return `function '${scope.name.text}'`;
|
||||
return scope.name
|
||||
? `function '${scope.name.text}'`
|
||||
: "anonymous function";
|
||||
case SyntaxKind.ArrowFunction:
|
||||
return "arrow function";
|
||||
case SyntaxKind.MethodDeclaration:
|
||||
@@ -811,13 +810,10 @@ namespace ts.refactor.extractSymbol {
|
||||
const minInsertionPos = (isReadonlyArray(range.range) ? last(range.range) : range.range).end;
|
||||
const nodeToInsertBefore = getNodeToInsertFunctionBefore(minInsertionPos, scope);
|
||||
if (nodeToInsertBefore) {
|
||||
changeTracker.insertNodeBefore(context.file, nodeToInsertBefore, newFunction, { suffix: context.newLineCharacter + context.newLineCharacter });
|
||||
changeTracker.insertNodeBefore(context.file, nodeToInsertBefore, newFunction, /*blankLineBetween*/ true);
|
||||
}
|
||||
else {
|
||||
changeTracker.insertNodeBefore(context.file, scope.getLastToken(), newFunction, {
|
||||
prefix: isLineBreak(file.text.charCodeAt(scope.getLastToken().pos)) ? context.newLineCharacter : context.newLineCharacter + context.newLineCharacter,
|
||||
suffix: context.newLineCharacter
|
||||
});
|
||||
changeTracker.insertNodeAtEndOfScope(context.file, scope, newFunction);
|
||||
}
|
||||
|
||||
const newNodes: Node[] = [];
|
||||
@@ -960,10 +956,12 @@ namespace ts.refactor.extractSymbol {
|
||||
}
|
||||
}
|
||||
|
||||
const replacementRange = isReadonlyArray(range.range)
|
||||
? { pos: first(range.range).getStart(), end: last(range.range).end }
|
||||
: { pos: range.range.getStart(), end: range.range.end };
|
||||
changeTracker.replaceRangeWithNodes(context.file, replacementRange, newNodes, { nodeSeparator: context.newLineCharacter });
|
||||
if (isReadonlyArray(range.range)) {
|
||||
changeTracker.replaceNodesWithNodes(context.file, range.range, newNodes);
|
||||
}
|
||||
else {
|
||||
changeTracker.replaceNodeWithNodes(context.file, range.range, newNodes);
|
||||
}
|
||||
|
||||
const edits = changeTracker.getChanges();
|
||||
const renameRange = isReadonlyArray(range.range) ? first(range.range) : range.range;
|
||||
@@ -1041,7 +1039,7 @@ namespace ts.refactor.extractSymbol {
|
||||
// Declare
|
||||
const maxInsertionPos = node.pos;
|
||||
const nodeToInsertBefore = getNodeToInsertPropertyBefore(maxInsertionPos, scope);
|
||||
changeTracker.insertNodeBefore(context.file, nodeToInsertBefore, newVariable, { suffix: context.newLineCharacter + context.newLineCharacter });
|
||||
changeTracker.insertNodeBefore(context.file, nodeToInsertBefore, newVariable, /*blankLineBetween*/ true);
|
||||
|
||||
// Consume
|
||||
changeTracker.replaceRange(context.file, { pos: node.getStart(), end: node.end }, localReference);
|
||||
@@ -1056,8 +1054,8 @@ namespace ts.refactor.extractSymbol {
|
||||
const oldVariableDeclaration = getContainingVariableDeclarationIfInList(node, scope);
|
||||
if (oldVariableDeclaration) {
|
||||
// Declare
|
||||
// CONSIDER: could detect that each is on a separate line
|
||||
changeTracker.insertNodeAt(context.file, oldVariableDeclaration.getStart(), newVariableDeclaration, { suffix: ", " });
|
||||
// CONSIDER: could detect that each is on a separate line (See `extractConstant_VariableList_MultipleLines` in `extractConstants.ts`)
|
||||
changeTracker.insertNodeBefore(context.file, oldVariableDeclaration, newVariableDeclaration);
|
||||
|
||||
// Consume
|
||||
const localReference = createIdentifier(localNameText);
|
||||
@@ -1079,17 +1077,10 @@ namespace ts.refactor.extractSymbol {
|
||||
// Declare
|
||||
const nodeToInsertBefore = getNodeToInsertConstantBefore(node, scope);
|
||||
if (nodeToInsertBefore.pos === 0) {
|
||||
// If we're at the beginning of the file, we need to take care not to insert before header comments
|
||||
// (e.g. copyright, triple-slash references). Fortunately, this problem has already been solved
|
||||
// for imports.
|
||||
const insertionPos = getSourceFileImportLocation(file);
|
||||
changeTracker.insertNodeAt(context.file, insertionPos, newVariableStatement, {
|
||||
prefix: insertionPos === 0 ? undefined : context.newLineCharacter,
|
||||
suffix: isLineBreak(file.text.charCodeAt(insertionPos)) ? context.newLineCharacter : context.newLineCharacter + context.newLineCharacter
|
||||
});
|
||||
changeTracker.insertNodeAtTopOfFile(context.file, newVariableStatement);
|
||||
}
|
||||
else {
|
||||
changeTracker.insertNodeBefore(context.file, nodeToInsertBefore, newVariableStatement, { suffix: context.newLineCharacter + context.newLineCharacter });
|
||||
changeTracker.insertNodeBefore(context.file, nodeToInsertBefore, newVariableStatement, /*blankLineBetween*/ true);
|
||||
}
|
||||
|
||||
// Consume
|
||||
@@ -1286,12 +1277,12 @@ namespace ts.refactor.extractSymbol {
|
||||
* If `scope` contains a function after `minPos`, then return the first such function.
|
||||
* Otherwise, return `undefined`.
|
||||
*/
|
||||
function getNodeToInsertFunctionBefore(minPos: number, scope: Scope): Node | undefined {
|
||||
function getNodeToInsertFunctionBefore(minPos: number, scope: Scope): Statement | ClassElement | undefined {
|
||||
return find<Statement | ClassElement>(getStatementsOrClassElements(scope), child =>
|
||||
child.pos >= minPos && isFunctionLikeDeclaration(child) && !isConstructorDeclaration(child));
|
||||
}
|
||||
|
||||
function getNodeToInsertPropertyBefore(maxPos: number, scope: ClassLikeDeclaration): Node {
|
||||
function getNodeToInsertPropertyBefore(maxPos: number, scope: ClassLikeDeclaration): ClassElement {
|
||||
const members = scope.members;
|
||||
Debug.assert(members.length > 0); // There must be at least one child, since we extracted from one.
|
||||
|
||||
@@ -1317,7 +1308,7 @@ namespace ts.refactor.extractSymbol {
|
||||
return prevMember;
|
||||
}
|
||||
|
||||
function getNodeToInsertConstantBefore(node: Node, scope: Scope): Node {
|
||||
function getNodeToInsertConstantBefore(node: Node, scope: Scope): Statement {
|
||||
Debug.assert(!isClassLike(scope));
|
||||
|
||||
let prevScope: Scope | undefined = undefined;
|
||||
|
||||
+113
-32
@@ -117,7 +117,7 @@ namespace ts.textChanges {
|
||||
readonly options?: never;
|
||||
}
|
||||
|
||||
export interface ChangeMultipleNodesOptions extends ChangeNodeOptions {
|
||||
interface ChangeMultipleNodesOptions extends ChangeNodeOptions {
|
||||
nodeSeparator: string;
|
||||
}
|
||||
interface ReplaceWithMultipleNodes extends BaseChange {
|
||||
@@ -192,7 +192,7 @@ namespace ts.textChanges {
|
||||
}
|
||||
|
||||
export class ChangeTracker {
|
||||
private changes: Change[] = [];
|
||||
private readonly changes: Change[] = [];
|
||||
private readonly newLineCharacter: string;
|
||||
private readonly deletedNodesInLists: true[] = []; // Stores ids of nodes in lists that we already deleted. Used to avoid deleting `, ` twice in `a, b`.
|
||||
// Map from class id to nodes to insert at the start
|
||||
@@ -319,49 +319,75 @@ namespace ts.textChanges {
|
||||
return this;
|
||||
}
|
||||
|
||||
public replaceNodeWithNodes(sourceFile: SourceFile, oldNode: Node, newNodes: ReadonlyArray<Node>, options: ChangeMultipleNodesOptions) {
|
||||
const startPosition = getAdjustedStartPosition(sourceFile, oldNode, options, Position.Start);
|
||||
const endPosition = getAdjustedEndPosition(sourceFile, oldNode, options);
|
||||
return this.replaceWithMultiple(sourceFile, startPosition, endPosition, newNodes, options);
|
||||
public replaceNodeWithNodes(sourceFile: SourceFile, oldNode: Node, newNodes: ReadonlyArray<Node>): void {
|
||||
this.replaceWithMultiple(sourceFile, oldNode.getStart(sourceFile), oldNode.getEnd(), newNodes, { nodeSeparator: this.newLineCharacter });
|
||||
}
|
||||
|
||||
public replaceNodesWithNodes(sourceFile: SourceFile, oldNodes: ReadonlyArray<Node>, newNodes: ReadonlyArray<Node>, options: ChangeMultipleNodesOptions) {
|
||||
const startPosition = getAdjustedStartPosition(sourceFile, oldNodes[0], options, Position.Start);
|
||||
const endPosition = getAdjustedEndPosition(sourceFile, lastOrUndefined(oldNodes), options);
|
||||
return this.replaceWithMultiple(sourceFile, startPosition, endPosition, newNodes, options);
|
||||
public replaceNodesWithNodes(sourceFile: SourceFile, oldNodes: ReadonlyArray<Node>, newNodes: ReadonlyArray<Node>): void {
|
||||
this.replaceWithMultiple(sourceFile, first(oldNodes).getStart(sourceFile), last(oldNodes).getEnd(), newNodes, { nodeSeparator: this.newLineCharacter });
|
||||
}
|
||||
|
||||
public replaceRangeWithNodes(sourceFile: SourceFile, range: TextRange, newNodes: ReadonlyArray<Node>, options: ChangeMultipleNodesOptions) {
|
||||
return this.replaceWithMultiple(sourceFile, range.pos, range.end, newNodes, options);
|
||||
}
|
||||
|
||||
public replaceNodeRangeWithNodes(sourceFile: SourceFile, startNode: Node, endNode: Node, newNodes: ReadonlyArray<Node>, options: ChangeMultipleNodesOptions) {
|
||||
const startPosition = getAdjustedStartPosition(sourceFile, startNode, options, Position.Start);
|
||||
const endPosition = getAdjustedEndPosition(sourceFile, endNode, options);
|
||||
return this.replaceWithMultiple(sourceFile, startPosition, endPosition, newNodes, options);
|
||||
}
|
||||
|
||||
public insertNodeAt(sourceFile: SourceFile, pos: number, newNode: Node, options: InsertNodeOptions = {}) {
|
||||
private insertNodeAt(sourceFile: SourceFile, pos: number, newNode: Node, options: InsertNodeOptions = {}) {
|
||||
this.changes.push({ kind: ChangeKind.ReplaceWithSingleNode, sourceFile, options, node: newNode, range: { pos, end: pos } });
|
||||
return this;
|
||||
}
|
||||
|
||||
public insertNodeBefore(sourceFile: SourceFile, before: Node, newNode: Node, options: InsertNodeOptions & ConfigurableStart = {}) {
|
||||
const startPosition = getAdjustedStartPosition(sourceFile, before, options, Position.Start);
|
||||
return this.replaceWithSingle(sourceFile, startPosition, startPosition, newNode, options);
|
||||
public insertNodeAtTopOfFile(sourceFile: SourceFile, newNode: Statement): void {
|
||||
const pos = getInsertionPositionAtSourceFileTop(sourceFile);
|
||||
this.insertNodeAt(sourceFile, pos, newNode, {
|
||||
prefix: pos === 0 ? undefined : this.newLineCharacter,
|
||||
suffix: isLineBreak(sourceFile.text.charCodeAt(pos)) ? this.newLineCharacter : this.newLineCharacter + this.newLineCharacter,
|
||||
});
|
||||
}
|
||||
|
||||
public insertNodeAtConstructorStart(sourceFile: SourceFile, ctr: ConstructorDeclaration, newStatement: Statement, newLineCharacter: string): void {
|
||||
public insertNodeBefore(sourceFile: SourceFile, before: Node, newNode: Node, blankLineBetween = false) {
|
||||
const startPosition = getAdjustedStartPosition(sourceFile, before, {}, Position.Start);
|
||||
return this.replaceWithSingle(sourceFile, startPosition, startPosition, newNode, this.getOptionsForInsertNodeBefore(before, blankLineBetween));
|
||||
}
|
||||
|
||||
private getOptionsForInsertNodeBefore(before: Node, doubleNewlines: boolean): ChangeNodeOptions {
|
||||
if (isStatement(before) || isClassElement(before)) {
|
||||
return { suffix: doubleNewlines ? this.newLineCharacter + this.newLineCharacter : this.newLineCharacter };
|
||||
}
|
||||
else if (isVariableDeclaration(before)) { // insert `x = 1, ` into `const x = 1, y = 2;
|
||||
return { suffix: ", " };
|
||||
}
|
||||
throw Debug.failBadSyntaxKind(before); // We haven't handled this kind of node yet -- add it
|
||||
}
|
||||
|
||||
public insertNodeAtConstructorStart(sourceFile: SourceFile, ctr: ConstructorDeclaration, newStatement: Statement): void {
|
||||
const firstStatement = firstOrUndefined(ctr.body.statements);
|
||||
if (!firstStatement || !ctr.body.multiLine) {
|
||||
this.replaceNode(sourceFile, ctr.body, createBlock([newStatement, ...ctr.body.statements], /*multiLine*/ true), { useNonAdjustedEndPosition: true });
|
||||
this.replaceConstructorBody(sourceFile, ctr, [newStatement, ...ctr.body.statements]);
|
||||
}
|
||||
else {
|
||||
this.insertNodeBefore(sourceFile, firstStatement, newStatement, { suffix: newLineCharacter });
|
||||
this.insertNodeBefore(sourceFile, firstStatement, newStatement);
|
||||
}
|
||||
}
|
||||
|
||||
public insertNodeAtClassStart(sourceFile: SourceFile, cls: ClassLikeDeclaration, newElement: ClassElement, newLineCharacter: string): void {
|
||||
public insertNodeAtConstructorEnd(sourceFile: SourceFile, ctr: ConstructorDeclaration, newStatement: Statement): void {
|
||||
const lastStatement = lastOrUndefined(ctr.body.statements);
|
||||
if (!lastStatement || !ctr.body.multiLine) {
|
||||
this.replaceConstructorBody(sourceFile, ctr, [...ctr.body.statements, newStatement]);
|
||||
}
|
||||
else {
|
||||
this.insertNodeAfter(sourceFile, lastStatement, newStatement);
|
||||
}
|
||||
}
|
||||
|
||||
private replaceConstructorBody(sourceFile: SourceFile, ctr: ConstructorDeclaration, statements: ReadonlyArray<Statement>): void {
|
||||
this.replaceNode(sourceFile, ctr.body, createBlock(statements, /*multiLine*/ true), { useNonAdjustedEndPosition: true });
|
||||
}
|
||||
|
||||
public insertNodeAtEndOfScope(sourceFile: SourceFile, scope: Node, newNode: Node): void {
|
||||
const startPosition = getAdjustedStartPosition(sourceFile, scope.getLastToken(), {}, Position.Start);
|
||||
this.replaceWithSingle(sourceFile, startPosition, startPosition, newNode, {
|
||||
prefix: isLineBreak(sourceFile.text.charCodeAt(scope.getLastToken().pos)) ? this.newLineCharacter : this.newLineCharacter + this.newLineCharacter,
|
||||
suffix: this.newLineCharacter
|
||||
});
|
||||
}
|
||||
|
||||
public insertNodeAtClassStart(sourceFile: SourceFile, cls: ClassLikeDeclaration, newElement: ClassElement): void {
|
||||
const firstMember = firstOrUndefined(cls.members);
|
||||
if (!firstMember) {
|
||||
const id = getNodeId(cls).toString();
|
||||
@@ -375,11 +401,11 @@ namespace ts.textChanges {
|
||||
}
|
||||
}
|
||||
else {
|
||||
this.insertNodeBefore(sourceFile, firstMember, newElement, { suffix: newLineCharacter });
|
||||
this.insertNodeBefore(sourceFile, firstMember, newElement);
|
||||
}
|
||||
}
|
||||
|
||||
public insertNodeAfter(sourceFile: SourceFile, after: Node, newNode: Node, options: InsertNodeOptions & ConfigurableEnd = {}): this {
|
||||
public insertNodeAfter(sourceFile: SourceFile, after: Node, newNode: Node): this {
|
||||
if (isStatementButNotDeclaration(after) ||
|
||||
after.kind === SyntaxKind.PropertyDeclaration ||
|
||||
after.kind === SyntaxKind.PropertySignature ||
|
||||
@@ -396,8 +422,21 @@ namespace ts.textChanges {
|
||||
});
|
||||
}
|
||||
}
|
||||
const endPosition = getAdjustedEndPosition(sourceFile, after, options);
|
||||
return this.replaceWithSingle(sourceFile, endPosition, endPosition, newNode, options);
|
||||
const endPosition = getAdjustedEndPosition(sourceFile, after, {});
|
||||
return this.replaceWithSingle(sourceFile, endPosition, endPosition, newNode, this.getInsertNodeAfterOptions(after));
|
||||
}
|
||||
|
||||
private getInsertNodeAfterOptions(node: Node): InsertNodeOptions {
|
||||
if (isClassDeclaration(node) || isModuleDeclaration(node)) {
|
||||
return { prefix: this.newLineCharacter, suffix: this.newLineCharacter };
|
||||
}
|
||||
else if (isStatement(node) || isClassElement(node) || isTypeElement(node)) {
|
||||
return { suffix: this.newLineCharacter };
|
||||
}
|
||||
else if (isVariableDeclaration(node)) {
|
||||
return { prefix: ", " };
|
||||
}
|
||||
throw Debug.failBadSyntaxKind(node); // We haven't handled this kind of node yet -- add it
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -804,4 +843,46 @@ namespace ts.textChanges {
|
||||
this.lastNonTriviaPosition = 0;
|
||||
}
|
||||
}
|
||||
|
||||
function getInsertionPositionAtSourceFileTop({ text }: SourceFile): number {
|
||||
const shebang = getShebang(text);
|
||||
let position = 0;
|
||||
if (shebang !== undefined) {
|
||||
position = shebang.length;
|
||||
advancePastLineBreak();
|
||||
}
|
||||
|
||||
// For a source file, it is possible there are detached comments we should not skip
|
||||
let ranges = getLeadingCommentRanges(text, position);
|
||||
if (!ranges) return position;
|
||||
// However we should still skip a pinned comment at the top
|
||||
if (ranges.length && ranges[0].kind === SyntaxKind.MultiLineCommentTrivia && isPinnedComment(text, ranges[0])) {
|
||||
position = ranges[0].end;
|
||||
advancePastLineBreak();
|
||||
ranges = ranges.slice(1);
|
||||
}
|
||||
// As well as any triple slash references
|
||||
for (const range of ranges) {
|
||||
if (range.kind === SyntaxKind.SingleLineCommentTrivia && isRecognizedTripleSlashComment(text, range.pos, range.end)) {
|
||||
position = range.end;
|
||||
advancePastLineBreak();
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
}
|
||||
return position;
|
||||
|
||||
function advancePastLineBreak() {
|
||||
if (position < text.length) {
|
||||
const charCode = text.charCodeAt(position);
|
||||
if (isLineBreak(charCode)) {
|
||||
position++;
|
||||
|
||||
if (position < text.length && charCode === CharacterCodes.carriageReturn && text.charCodeAt(position) === CharacterCodes.lineFeed) {
|
||||
position++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -445,7 +445,7 @@ namespace ts {
|
||||
return position < candidate.end || !isCompletedNode(candidate, sourceFile);
|
||||
}
|
||||
|
||||
export function isCompletedNode(n: Node, sourceFile: SourceFile): boolean {
|
||||
function isCompletedNode(n: Node, sourceFile: SourceFile): boolean {
|
||||
if (nodeIsMissing(n)) {
|
||||
return false;
|
||||
}
|
||||
@@ -512,7 +512,7 @@ namespace ts {
|
||||
|
||||
case SyntaxKind.ExpressionStatement:
|
||||
return isCompletedNode((<ExpressionStatement>n).expression, sourceFile) ||
|
||||
hasChildOfKind(n, SyntaxKind.SemicolonToken);
|
||||
hasChildOfKind(n, SyntaxKind.SemicolonToken, sourceFile);
|
||||
|
||||
case SyntaxKind.ArrayLiteralExpression:
|
||||
case SyntaxKind.ArrayBindingPattern:
|
||||
@@ -540,11 +540,9 @@ namespace ts {
|
||||
return isCompletedNode((<IterationStatement>n).statement, sourceFile);
|
||||
case SyntaxKind.DoStatement:
|
||||
// rough approximation: if DoStatement has While keyword - then if node is completed is checking the presence of ')';
|
||||
const hasWhileKeyword = findChildOfKind(n, SyntaxKind.WhileKeyword, sourceFile);
|
||||
if (hasWhileKeyword) {
|
||||
return nodeEndsWith(n, SyntaxKind.CloseParenToken, sourceFile);
|
||||
}
|
||||
return isCompletedNode((<DoStatement>n).statement, sourceFile);
|
||||
return hasChildOfKind(n, SyntaxKind.WhileKeyword, sourceFile)
|
||||
? nodeEndsWith(n, SyntaxKind.CloseParenToken, sourceFile)
|
||||
: isCompletedNode((<DoStatement>n).statement, sourceFile);
|
||||
|
||||
case SyntaxKind.TypeQuery:
|
||||
return isCompletedNode((<TypeQueryNode>n).exprName, sourceFile);
|
||||
@@ -619,12 +617,12 @@ namespace ts {
|
||||
};
|
||||
}
|
||||
|
||||
export function hasChildOfKind(n: Node, kind: SyntaxKind, sourceFile?: SourceFile): boolean {
|
||||
export function hasChildOfKind(n: Node, kind: SyntaxKind, sourceFile: SourceFile): boolean {
|
||||
return !!findChildOfKind(n, kind, sourceFile);
|
||||
}
|
||||
|
||||
export function findChildOfKind(n: Node, kind: SyntaxKind, sourceFile?: SourceFileLike): Node | undefined {
|
||||
return forEach(n.getChildren(sourceFile), c => c.kind === kind && c);
|
||||
export function findChildOfKind<T extends Node>(n: Node, kind: T["kind"], sourceFile: SourceFileLike): T | undefined {
|
||||
return find(n.getChildren(sourceFile), (c): c is T => c.kind === kind);
|
||||
}
|
||||
|
||||
export function findContainingList(node: Node): SyntaxList | undefined {
|
||||
@@ -1109,10 +1107,6 @@ namespace ts {
|
||||
seen.set(key, true);
|
||||
return true;
|
||||
}
|
||||
|
||||
export function getFirstChildOfKind(node: Node, sourceFile: SourceFile, kind: SyntaxKind): Node | undefined {
|
||||
return find(node.getChildren(sourceFile), c => c.kind === kind);
|
||||
}
|
||||
}
|
||||
|
||||
// Display-part writer helpers
|
||||
@@ -1334,48 +1328,6 @@ namespace ts {
|
||||
return position;
|
||||
}
|
||||
|
||||
export function getSourceFileImportLocation({ text }: SourceFile) {
|
||||
const shebang = getShebang(text);
|
||||
let position = 0;
|
||||
if (shebang !== undefined) {
|
||||
position = shebang.length;
|
||||
advancePastLineBreak();
|
||||
}
|
||||
|
||||
// For a source file, it is possible there are detached comments we should not skip
|
||||
let ranges = getLeadingCommentRanges(text, position);
|
||||
if (!ranges) return position;
|
||||
// However we should still skip a pinned comment at the top
|
||||
if (ranges.length && ranges[0].kind === SyntaxKind.MultiLineCommentTrivia && isPinnedComment(text, ranges[0])) {
|
||||
position = ranges[0].end;
|
||||
advancePastLineBreak();
|
||||
ranges = ranges.slice(1);
|
||||
}
|
||||
// As well as any triple slash references
|
||||
for (const range of ranges) {
|
||||
if (range.kind === SyntaxKind.SingleLineCommentTrivia && isRecognizedTripleSlashComment(text, range.pos, range.end)) {
|
||||
position = range.end;
|
||||
advancePastLineBreak();
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
}
|
||||
return position;
|
||||
|
||||
function advancePastLineBreak() {
|
||||
if (position < text.length) {
|
||||
const charCode = text.charCodeAt(position);
|
||||
if (isLineBreak(charCode)) {
|
||||
position++;
|
||||
|
||||
if (position < text.length && charCode === CharacterCodes.carriageReturn && text.charCodeAt(position) === CharacterCodes.lineFeed) {
|
||||
position++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a deep, memberwise clone of a node with no source map location.
|
||||
*
|
||||
|
||||
@@ -0,0 +1,136 @@
|
||||
//// [contextualTypeShouldBeLiteral.ts]
|
||||
interface X {
|
||||
type: 'x';
|
||||
value: string;
|
||||
method(): void;
|
||||
}
|
||||
|
||||
interface Y {
|
||||
type: 'y';
|
||||
value: 'none' | 'done';
|
||||
method(): void;
|
||||
}
|
||||
|
||||
function foo(bar: X | Y) { }
|
||||
|
||||
foo({
|
||||
type: 'y',
|
||||
value: 'done',
|
||||
method() {
|
||||
this;
|
||||
this.type;
|
||||
this.value;
|
||||
}
|
||||
});
|
||||
|
||||
interface X2 {
|
||||
type1: 'x';
|
||||
value: string;
|
||||
method(): void;
|
||||
}
|
||||
|
||||
interface Y2 {
|
||||
type2: 'y';
|
||||
value: 'none' | 'done';
|
||||
method(): void;
|
||||
}
|
||||
|
||||
function foo2(bar: X2 | Y2) { }
|
||||
|
||||
foo2({
|
||||
type2: 'y',
|
||||
value: 'done',
|
||||
method() {
|
||||
this;
|
||||
this.value;
|
||||
}
|
||||
});
|
||||
|
||||
interface X3 {
|
||||
type: 'x';
|
||||
value: 1 | 2 | 3;
|
||||
xtra: number;
|
||||
}
|
||||
|
||||
interface Y3 {
|
||||
type: 'y';
|
||||
value: 11 | 12 | 13;
|
||||
ytra: number;
|
||||
}
|
||||
|
||||
let xy: X3 | Y3 = {
|
||||
type: 'y',
|
||||
value: 11,
|
||||
ytra: 12
|
||||
};
|
||||
|
||||
xy;
|
||||
|
||||
|
||||
interface LikeA {
|
||||
x: 'x';
|
||||
y: 'y';
|
||||
value: string;
|
||||
method(): void;
|
||||
}
|
||||
|
||||
interface LikeB {
|
||||
x: 'xx';
|
||||
y: 'yy';
|
||||
value: number;
|
||||
method(): void;
|
||||
}
|
||||
|
||||
let xyz: LikeA | LikeB = {
|
||||
x: 'x',
|
||||
y: 'y',
|
||||
value: "foo",
|
||||
method() {
|
||||
this;
|
||||
this.x;
|
||||
this.y;
|
||||
this.value;
|
||||
}
|
||||
};
|
||||
|
||||
xyz;
|
||||
|
||||
//// [contextualTypeShouldBeLiteral.js]
|
||||
"use strict";
|
||||
function foo(bar) { }
|
||||
foo({
|
||||
type: 'y',
|
||||
value: 'done',
|
||||
method: function () {
|
||||
this;
|
||||
this.type;
|
||||
this.value;
|
||||
}
|
||||
});
|
||||
function foo2(bar) { }
|
||||
foo2({
|
||||
type2: 'y',
|
||||
value: 'done',
|
||||
method: function () {
|
||||
this;
|
||||
this.value;
|
||||
}
|
||||
});
|
||||
var xy = {
|
||||
type: 'y',
|
||||
value: 11,
|
||||
ytra: 12
|
||||
};
|
||||
xy;
|
||||
var xyz = {
|
||||
x: 'x',
|
||||
y: 'y',
|
||||
value: "foo",
|
||||
method: function () {
|
||||
this;
|
||||
this.x;
|
||||
this.y;
|
||||
this.value;
|
||||
}
|
||||
};
|
||||
xyz;
|
||||
@@ -0,0 +1,229 @@
|
||||
=== tests/cases/compiler/contextualTypeShouldBeLiteral.ts ===
|
||||
interface X {
|
||||
>X : Symbol(X, Decl(contextualTypeShouldBeLiteral.ts, 0, 0))
|
||||
|
||||
type: 'x';
|
||||
>type : Symbol(X.type, Decl(contextualTypeShouldBeLiteral.ts, 0, 13))
|
||||
|
||||
value: string;
|
||||
>value : Symbol(X.value, Decl(contextualTypeShouldBeLiteral.ts, 1, 14))
|
||||
|
||||
method(): void;
|
||||
>method : Symbol(X.method, Decl(contextualTypeShouldBeLiteral.ts, 2, 18))
|
||||
}
|
||||
|
||||
interface Y {
|
||||
>Y : Symbol(Y, Decl(contextualTypeShouldBeLiteral.ts, 4, 1))
|
||||
|
||||
type: 'y';
|
||||
>type : Symbol(Y.type, Decl(contextualTypeShouldBeLiteral.ts, 6, 13))
|
||||
|
||||
value: 'none' | 'done';
|
||||
>value : Symbol(Y.value, Decl(contextualTypeShouldBeLiteral.ts, 7, 14))
|
||||
|
||||
method(): void;
|
||||
>method : Symbol(Y.method, Decl(contextualTypeShouldBeLiteral.ts, 8, 27))
|
||||
}
|
||||
|
||||
function foo(bar: X | Y) { }
|
||||
>foo : Symbol(foo, Decl(contextualTypeShouldBeLiteral.ts, 10, 1))
|
||||
>bar : Symbol(bar, Decl(contextualTypeShouldBeLiteral.ts, 12, 13))
|
||||
>X : Symbol(X, Decl(contextualTypeShouldBeLiteral.ts, 0, 0))
|
||||
>Y : Symbol(Y, Decl(contextualTypeShouldBeLiteral.ts, 4, 1))
|
||||
|
||||
foo({
|
||||
>foo : Symbol(foo, Decl(contextualTypeShouldBeLiteral.ts, 10, 1))
|
||||
|
||||
type: 'y',
|
||||
>type : Symbol(type, Decl(contextualTypeShouldBeLiteral.ts, 14, 5))
|
||||
|
||||
value: 'done',
|
||||
>value : Symbol(value, Decl(contextualTypeShouldBeLiteral.ts, 15, 14))
|
||||
|
||||
method() {
|
||||
>method : Symbol(method, Decl(contextualTypeShouldBeLiteral.ts, 16, 18))
|
||||
|
||||
this;
|
||||
>this : Symbol(Y, Decl(contextualTypeShouldBeLiteral.ts, 4, 1))
|
||||
|
||||
this.type;
|
||||
>this.type : Symbol(Y.type, Decl(contextualTypeShouldBeLiteral.ts, 6, 13))
|
||||
>this : Symbol(Y, Decl(contextualTypeShouldBeLiteral.ts, 4, 1))
|
||||
>type : Symbol(Y.type, Decl(contextualTypeShouldBeLiteral.ts, 6, 13))
|
||||
|
||||
this.value;
|
||||
>this.value : Symbol(Y.value, Decl(contextualTypeShouldBeLiteral.ts, 7, 14))
|
||||
>this : Symbol(Y, Decl(contextualTypeShouldBeLiteral.ts, 4, 1))
|
||||
>value : Symbol(Y.value, Decl(contextualTypeShouldBeLiteral.ts, 7, 14))
|
||||
}
|
||||
});
|
||||
|
||||
interface X2 {
|
||||
>X2 : Symbol(X2, Decl(contextualTypeShouldBeLiteral.ts, 22, 3))
|
||||
|
||||
type1: 'x';
|
||||
>type1 : Symbol(X2.type1, Decl(contextualTypeShouldBeLiteral.ts, 24, 14))
|
||||
|
||||
value: string;
|
||||
>value : Symbol(X2.value, Decl(contextualTypeShouldBeLiteral.ts, 25, 15))
|
||||
|
||||
method(): void;
|
||||
>method : Symbol(X2.method, Decl(contextualTypeShouldBeLiteral.ts, 26, 18))
|
||||
}
|
||||
|
||||
interface Y2 {
|
||||
>Y2 : Symbol(Y2, Decl(contextualTypeShouldBeLiteral.ts, 28, 1))
|
||||
|
||||
type2: 'y';
|
||||
>type2 : Symbol(Y2.type2, Decl(contextualTypeShouldBeLiteral.ts, 30, 14))
|
||||
|
||||
value: 'none' | 'done';
|
||||
>value : Symbol(Y2.value, Decl(contextualTypeShouldBeLiteral.ts, 31, 15))
|
||||
|
||||
method(): void;
|
||||
>method : Symbol(Y2.method, Decl(contextualTypeShouldBeLiteral.ts, 32, 27))
|
||||
}
|
||||
|
||||
function foo2(bar: X2 | Y2) { }
|
||||
>foo2 : Symbol(foo2, Decl(contextualTypeShouldBeLiteral.ts, 34, 1))
|
||||
>bar : Symbol(bar, Decl(contextualTypeShouldBeLiteral.ts, 36, 14))
|
||||
>X2 : Symbol(X2, Decl(contextualTypeShouldBeLiteral.ts, 22, 3))
|
||||
>Y2 : Symbol(Y2, Decl(contextualTypeShouldBeLiteral.ts, 28, 1))
|
||||
|
||||
foo2({
|
||||
>foo2 : Symbol(foo2, Decl(contextualTypeShouldBeLiteral.ts, 34, 1))
|
||||
|
||||
type2: 'y',
|
||||
>type2 : Symbol(type2, Decl(contextualTypeShouldBeLiteral.ts, 38, 6))
|
||||
|
||||
value: 'done',
|
||||
>value : Symbol(value, Decl(contextualTypeShouldBeLiteral.ts, 39, 15))
|
||||
|
||||
method() {
|
||||
>method : Symbol(method, Decl(contextualTypeShouldBeLiteral.ts, 40, 18))
|
||||
|
||||
this;
|
||||
this.value;
|
||||
>this.value : Symbol(value, Decl(contextualTypeShouldBeLiteral.ts, 25, 15), Decl(contextualTypeShouldBeLiteral.ts, 31, 15))
|
||||
>value : Symbol(value, Decl(contextualTypeShouldBeLiteral.ts, 25, 15), Decl(contextualTypeShouldBeLiteral.ts, 31, 15))
|
||||
}
|
||||
});
|
||||
|
||||
interface X3 {
|
||||
>X3 : Symbol(X3, Decl(contextualTypeShouldBeLiteral.ts, 45, 3))
|
||||
|
||||
type: 'x';
|
||||
>type : Symbol(X3.type, Decl(contextualTypeShouldBeLiteral.ts, 47, 14))
|
||||
|
||||
value: 1 | 2 | 3;
|
||||
>value : Symbol(X3.value, Decl(contextualTypeShouldBeLiteral.ts, 48, 14))
|
||||
|
||||
xtra: number;
|
||||
>xtra : Symbol(X3.xtra, Decl(contextualTypeShouldBeLiteral.ts, 49, 21))
|
||||
}
|
||||
|
||||
interface Y3 {
|
||||
>Y3 : Symbol(Y3, Decl(contextualTypeShouldBeLiteral.ts, 51, 1))
|
||||
|
||||
type: 'y';
|
||||
>type : Symbol(Y3.type, Decl(contextualTypeShouldBeLiteral.ts, 53, 14))
|
||||
|
||||
value: 11 | 12 | 13;
|
||||
>value : Symbol(Y3.value, Decl(contextualTypeShouldBeLiteral.ts, 54, 14))
|
||||
|
||||
ytra: number;
|
||||
>ytra : Symbol(Y3.ytra, Decl(contextualTypeShouldBeLiteral.ts, 55, 24))
|
||||
}
|
||||
|
||||
let xy: X3 | Y3 = {
|
||||
>xy : Symbol(xy, Decl(contextualTypeShouldBeLiteral.ts, 59, 3))
|
||||
>X3 : Symbol(X3, Decl(contextualTypeShouldBeLiteral.ts, 45, 3))
|
||||
>Y3 : Symbol(Y3, Decl(contextualTypeShouldBeLiteral.ts, 51, 1))
|
||||
|
||||
type: 'y',
|
||||
>type : Symbol(type, Decl(contextualTypeShouldBeLiteral.ts, 59, 19))
|
||||
|
||||
value: 11,
|
||||
>value : Symbol(value, Decl(contextualTypeShouldBeLiteral.ts, 60, 14))
|
||||
|
||||
ytra: 12
|
||||
>ytra : Symbol(ytra, Decl(contextualTypeShouldBeLiteral.ts, 61, 14))
|
||||
|
||||
};
|
||||
|
||||
xy;
|
||||
>xy : Symbol(xy, Decl(contextualTypeShouldBeLiteral.ts, 59, 3))
|
||||
|
||||
|
||||
interface LikeA {
|
||||
>LikeA : Symbol(LikeA, Decl(contextualTypeShouldBeLiteral.ts, 65, 3))
|
||||
|
||||
x: 'x';
|
||||
>x : Symbol(LikeA.x, Decl(contextualTypeShouldBeLiteral.ts, 68, 17))
|
||||
|
||||
y: 'y';
|
||||
>y : Symbol(LikeA.y, Decl(contextualTypeShouldBeLiteral.ts, 69, 11))
|
||||
|
||||
value: string;
|
||||
>value : Symbol(LikeA.value, Decl(contextualTypeShouldBeLiteral.ts, 70, 11))
|
||||
|
||||
method(): void;
|
||||
>method : Symbol(LikeA.method, Decl(contextualTypeShouldBeLiteral.ts, 71, 18))
|
||||
}
|
||||
|
||||
interface LikeB {
|
||||
>LikeB : Symbol(LikeB, Decl(contextualTypeShouldBeLiteral.ts, 73, 1))
|
||||
|
||||
x: 'xx';
|
||||
>x : Symbol(LikeB.x, Decl(contextualTypeShouldBeLiteral.ts, 75, 17))
|
||||
|
||||
y: 'yy';
|
||||
>y : Symbol(LikeB.y, Decl(contextualTypeShouldBeLiteral.ts, 76, 12))
|
||||
|
||||
value: number;
|
||||
>value : Symbol(LikeB.value, Decl(contextualTypeShouldBeLiteral.ts, 77, 12))
|
||||
|
||||
method(): void;
|
||||
>method : Symbol(LikeB.method, Decl(contextualTypeShouldBeLiteral.ts, 78, 18))
|
||||
}
|
||||
|
||||
let xyz: LikeA | LikeB = {
|
||||
>xyz : Symbol(xyz, Decl(contextualTypeShouldBeLiteral.ts, 82, 3))
|
||||
>LikeA : Symbol(LikeA, Decl(contextualTypeShouldBeLiteral.ts, 65, 3))
|
||||
>LikeB : Symbol(LikeB, Decl(contextualTypeShouldBeLiteral.ts, 73, 1))
|
||||
|
||||
x: 'x',
|
||||
>x : Symbol(x, Decl(contextualTypeShouldBeLiteral.ts, 82, 26))
|
||||
|
||||
y: 'y',
|
||||
>y : Symbol(y, Decl(contextualTypeShouldBeLiteral.ts, 83, 11))
|
||||
|
||||
value: "foo",
|
||||
>value : Symbol(value, Decl(contextualTypeShouldBeLiteral.ts, 84, 11))
|
||||
|
||||
method() {
|
||||
>method : Symbol(method, Decl(contextualTypeShouldBeLiteral.ts, 85, 17))
|
||||
|
||||
this;
|
||||
>this : Symbol(LikeA, Decl(contextualTypeShouldBeLiteral.ts, 65, 3))
|
||||
|
||||
this.x;
|
||||
>this.x : Symbol(LikeA.x, Decl(contextualTypeShouldBeLiteral.ts, 68, 17))
|
||||
>this : Symbol(LikeA, Decl(contextualTypeShouldBeLiteral.ts, 65, 3))
|
||||
>x : Symbol(LikeA.x, Decl(contextualTypeShouldBeLiteral.ts, 68, 17))
|
||||
|
||||
this.y;
|
||||
>this.y : Symbol(LikeA.y, Decl(contextualTypeShouldBeLiteral.ts, 69, 11))
|
||||
>this : Symbol(LikeA, Decl(contextualTypeShouldBeLiteral.ts, 65, 3))
|
||||
>y : Symbol(LikeA.y, Decl(contextualTypeShouldBeLiteral.ts, 69, 11))
|
||||
|
||||
this.value;
|
||||
>this.value : Symbol(LikeA.value, Decl(contextualTypeShouldBeLiteral.ts, 70, 11))
|
||||
>this : Symbol(LikeA, Decl(contextualTypeShouldBeLiteral.ts, 65, 3))
|
||||
>value : Symbol(LikeA.value, Decl(contextualTypeShouldBeLiteral.ts, 70, 11))
|
||||
}
|
||||
};
|
||||
|
||||
xyz;
|
||||
>xyz : Symbol(xyz, Decl(contextualTypeShouldBeLiteral.ts, 82, 3))
|
||||
|
||||
@@ -0,0 +1,248 @@
|
||||
=== tests/cases/compiler/contextualTypeShouldBeLiteral.ts ===
|
||||
interface X {
|
||||
>X : X
|
||||
|
||||
type: 'x';
|
||||
>type : "x"
|
||||
|
||||
value: string;
|
||||
>value : string
|
||||
|
||||
method(): void;
|
||||
>method : () => void
|
||||
}
|
||||
|
||||
interface Y {
|
||||
>Y : Y
|
||||
|
||||
type: 'y';
|
||||
>type : "y"
|
||||
|
||||
value: 'none' | 'done';
|
||||
>value : "none" | "done"
|
||||
|
||||
method(): void;
|
||||
>method : () => void
|
||||
}
|
||||
|
||||
function foo(bar: X | Y) { }
|
||||
>foo : (bar: X | Y) => void
|
||||
>bar : X | Y
|
||||
>X : X
|
||||
>Y : Y
|
||||
|
||||
foo({
|
||||
>foo({ type: 'y', value: 'done', method() { this; this.type; this.value; }}) : void
|
||||
>foo : (bar: X | Y) => void
|
||||
>{ type: 'y', value: 'done', method() { this; this.type; this.value; }} : { type: "y"; value: "done"; method(): void; }
|
||||
|
||||
type: 'y',
|
||||
>type : string
|
||||
>'y' : "y"
|
||||
|
||||
value: 'done',
|
||||
>value : string
|
||||
>'done' : "done"
|
||||
|
||||
method() {
|
||||
>method : () => void
|
||||
|
||||
this;
|
||||
>this : Y
|
||||
|
||||
this.type;
|
||||
>this.type : "y"
|
||||
>this : Y
|
||||
>type : "y"
|
||||
|
||||
this.value;
|
||||
>this.value : "none" | "done"
|
||||
>this : Y
|
||||
>value : "none" | "done"
|
||||
}
|
||||
});
|
||||
|
||||
interface X2 {
|
||||
>X2 : X2
|
||||
|
||||
type1: 'x';
|
||||
>type1 : "x"
|
||||
|
||||
value: string;
|
||||
>value : string
|
||||
|
||||
method(): void;
|
||||
>method : () => void
|
||||
}
|
||||
|
||||
interface Y2 {
|
||||
>Y2 : Y2
|
||||
|
||||
type2: 'y';
|
||||
>type2 : "y"
|
||||
|
||||
value: 'none' | 'done';
|
||||
>value : "none" | "done"
|
||||
|
||||
method(): void;
|
||||
>method : () => void
|
||||
}
|
||||
|
||||
function foo2(bar: X2 | Y2) { }
|
||||
>foo2 : (bar: X2 | Y2) => void
|
||||
>bar : X2 | Y2
|
||||
>X2 : X2
|
||||
>Y2 : Y2
|
||||
|
||||
foo2({
|
||||
>foo2({ type2: 'y', value: 'done', method() { this; this.value; }}) : void
|
||||
>foo2 : (bar: X2 | Y2) => void
|
||||
>{ type2: 'y', value: 'done', method() { this; this.value; }} : { type2: "y"; value: "done"; method(): void; }
|
||||
|
||||
type2: 'y',
|
||||
>type2 : string
|
||||
>'y' : "y"
|
||||
|
||||
value: 'done',
|
||||
>value : string
|
||||
>'done' : "done"
|
||||
|
||||
method() {
|
||||
>method : () => void
|
||||
|
||||
this;
|
||||
>this : X2 | Y2
|
||||
|
||||
this.value;
|
||||
>this.value : string
|
||||
>this : X2 | Y2
|
||||
>value : string
|
||||
}
|
||||
});
|
||||
|
||||
interface X3 {
|
||||
>X3 : X3
|
||||
|
||||
type: 'x';
|
||||
>type : "x"
|
||||
|
||||
value: 1 | 2 | 3;
|
||||
>value : 1 | 2 | 3
|
||||
|
||||
xtra: number;
|
||||
>xtra : number
|
||||
}
|
||||
|
||||
interface Y3 {
|
||||
>Y3 : Y3
|
||||
|
||||
type: 'y';
|
||||
>type : "y"
|
||||
|
||||
value: 11 | 12 | 13;
|
||||
>value : 11 | 12 | 13
|
||||
|
||||
ytra: number;
|
||||
>ytra : number
|
||||
}
|
||||
|
||||
let xy: X3 | Y3 = {
|
||||
>xy : X3 | Y3
|
||||
>X3 : X3
|
||||
>Y3 : Y3
|
||||
>{ type: 'y', value: 11, ytra: 12} : { type: "y"; value: 11; ytra: number; }
|
||||
|
||||
type: 'y',
|
||||
>type : string
|
||||
>'y' : "y"
|
||||
|
||||
value: 11,
|
||||
>value : number
|
||||
>11 : 11
|
||||
|
||||
ytra: 12
|
||||
>ytra : number
|
||||
>12 : 12
|
||||
|
||||
};
|
||||
|
||||
xy;
|
||||
>xy : Y3
|
||||
|
||||
|
||||
interface LikeA {
|
||||
>LikeA : LikeA
|
||||
|
||||
x: 'x';
|
||||
>x : "x"
|
||||
|
||||
y: 'y';
|
||||
>y : "y"
|
||||
|
||||
value: string;
|
||||
>value : string
|
||||
|
||||
method(): void;
|
||||
>method : () => void
|
||||
}
|
||||
|
||||
interface LikeB {
|
||||
>LikeB : LikeB
|
||||
|
||||
x: 'xx';
|
||||
>x : "xx"
|
||||
|
||||
y: 'yy';
|
||||
>y : "yy"
|
||||
|
||||
value: number;
|
||||
>value : number
|
||||
|
||||
method(): void;
|
||||
>method : () => void
|
||||
}
|
||||
|
||||
let xyz: LikeA | LikeB = {
|
||||
>xyz : LikeA | LikeB
|
||||
>LikeA : LikeA
|
||||
>LikeB : LikeB
|
||||
>{ x: 'x', y: 'y', value: "foo", method() { this; this.x; this.y; this.value; }} : { x: "x"; y: "y"; value: string; method(): void; }
|
||||
|
||||
x: 'x',
|
||||
>x : string
|
||||
>'x' : "x"
|
||||
|
||||
y: 'y',
|
||||
>y : string
|
||||
>'y' : "y"
|
||||
|
||||
value: "foo",
|
||||
>value : string
|
||||
>"foo" : "foo"
|
||||
|
||||
method() {
|
||||
>method : () => void
|
||||
|
||||
this;
|
||||
>this : LikeA
|
||||
|
||||
this.x;
|
||||
>this.x : "x"
|
||||
>this : LikeA
|
||||
>x : "x"
|
||||
|
||||
this.y;
|
||||
>this.y : "y"
|
||||
>this : LikeA
|
||||
>y : "y"
|
||||
|
||||
this.value;
|
||||
>this.value : string
|
||||
>this : LikeA
|
||||
>value : string
|
||||
}
|
||||
};
|
||||
|
||||
xyz;
|
||||
>xyz : LikeA
|
||||
|
||||
+1
-1
@@ -3,4 +3,4 @@ const /*About A*/a = 1,
|
||||
/*About B*/b = /*[#|*/a + 1/*|]*/;
|
||||
// ==SCOPE::Extract to constant in enclosing scope==
|
||||
const /*About A*/a = 1,
|
||||
/*About B*/newLocal = a + 1, b = /*RENAME*/newLocal;
|
||||
newLocal = a + 1, /*About B*/b = /*RENAME*/newLocal;
|
||||
+1
-1
@@ -3,4 +3,4 @@ const /*About A*/a = 1,
|
||||
/*About B*/b = /*[#|*/a + 1/*|]*/;
|
||||
// ==SCOPE::Extract to constant in enclosing scope==
|
||||
const /*About A*/a = 1,
|
||||
/*About B*/newLocal = a + 1, b = /*RENAME*/newLocal;
|
||||
newLocal = a + 1, /*About B*/b = /*RENAME*/newLocal;
|
||||
@@ -0,0 +1,10 @@
|
||||
tests/cases/compiler/generatorReturnExpressionIsChecked.ts(2,12): error TS2304: Cannot find name 'invalid'.
|
||||
|
||||
|
||||
==== tests/cases/compiler/generatorReturnExpressionIsChecked.ts (1 errors) ====
|
||||
function* f(): Iterator<number> {
|
||||
return invalid;
|
||||
~~~~~~~
|
||||
!!! error TS2304: Cannot find name 'invalid'.
|
||||
}
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
//// [generatorReturnExpressionIsChecked.ts]
|
||||
function* f(): Iterator<number> {
|
||||
return invalid;
|
||||
}
|
||||
|
||||
|
||||
//// [generatorReturnExpressionIsChecked.js]
|
||||
function* f() {
|
||||
return invalid;
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
=== tests/cases/compiler/generatorReturnExpressionIsChecked.ts ===
|
||||
function* f(): Iterator<number> {
|
||||
>f : Symbol(f, Decl(generatorReturnExpressionIsChecked.ts, 0, 0))
|
||||
>Iterator : Symbol(Iterator, Decl(lib.es2015.iterable.d.ts, --, --))
|
||||
|
||||
return invalid;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
=== tests/cases/compiler/generatorReturnExpressionIsChecked.ts ===
|
||||
function* f(): Iterator<number> {
|
||||
>f : () => Iterator<number>
|
||||
>Iterator : Iterator<T>
|
||||
|
||||
return invalid;
|
||||
>invalid : any
|
||||
}
|
||||
|
||||
@@ -0,0 +1,68 @@
|
||||
//// [tests/cases/compiler/importAliasFromNamespace.ts] ////
|
||||
|
||||
//// [internal.ts]
|
||||
namespace My.Internal {
|
||||
export function getThing(): void {}
|
||||
export const enum WhichThing {
|
||||
A, B, C
|
||||
}
|
||||
}
|
||||
|
||||
//// [usage.ts]
|
||||
/// <reference path="./internal.ts" />
|
||||
namespace SomeOther.Thing {
|
||||
import Internal = My.Internal;
|
||||
export class Foo {
|
||||
private _which: Internal.WhichThing;
|
||||
constructor() {
|
||||
Internal.getThing();
|
||||
Internal.WhichThing.A ? "foo" : "bar";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//// [internal.js]
|
||||
var My;
|
||||
(function (My) {
|
||||
var Internal;
|
||||
(function (Internal) {
|
||||
function getThing() { }
|
||||
Internal.getThing = getThing;
|
||||
})(Internal = My.Internal || (My.Internal = {}));
|
||||
})(My || (My = {}));
|
||||
//// [usage.js]
|
||||
/// <reference path="./internal.ts" />
|
||||
var SomeOther;
|
||||
(function (SomeOther) {
|
||||
var Thing;
|
||||
(function (Thing) {
|
||||
var Internal = My.Internal;
|
||||
var Foo = /** @class */ (function () {
|
||||
function Foo() {
|
||||
Internal.getThing();
|
||||
0 /* A */ ? "foo" : "bar";
|
||||
}
|
||||
return Foo;
|
||||
}());
|
||||
Thing.Foo = Foo;
|
||||
})(Thing = SomeOther.Thing || (SomeOther.Thing = {}));
|
||||
})(SomeOther || (SomeOther = {}));
|
||||
|
||||
|
||||
//// [internal.d.ts]
|
||||
declare namespace My.Internal {
|
||||
function getThing(): void;
|
||||
const enum WhichThing {
|
||||
A = 0,
|
||||
B = 1,
|
||||
C = 2,
|
||||
}
|
||||
}
|
||||
//// [usage.d.ts]
|
||||
/// <reference path="internal.d.ts" />
|
||||
declare namespace SomeOther.Thing {
|
||||
class Foo {
|
||||
private _which;
|
||||
constructor();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
=== tests/cases/compiler/usage.ts ===
|
||||
/// <reference path="./internal.ts" />
|
||||
namespace SomeOther.Thing {
|
||||
>SomeOther : Symbol(SomeOther, Decl(usage.ts, 0, 0))
|
||||
>Thing : Symbol(Thing, Decl(usage.ts, 1, 20))
|
||||
|
||||
import Internal = My.Internal;
|
||||
>Internal : Symbol(Internal, Decl(usage.ts, 1, 27))
|
||||
>My : Symbol(My, Decl(internal.ts, 0, 0))
|
||||
>Internal : Symbol(Internal, Decl(internal.ts, 0, 13))
|
||||
|
||||
export class Foo {
|
||||
>Foo : Symbol(Foo, Decl(usage.ts, 2, 34))
|
||||
|
||||
private _which: Internal.WhichThing;
|
||||
>_which : Symbol(Foo._which, Decl(usage.ts, 3, 22))
|
||||
>Internal : Symbol(Internal, Decl(usage.ts, 1, 27))
|
||||
>WhichThing : Symbol(Internal.WhichThing, Decl(internal.ts, 1, 39))
|
||||
|
||||
constructor() {
|
||||
Internal.getThing();
|
||||
>Internal.getThing : Symbol(Internal.getThing, Decl(internal.ts, 0, 23))
|
||||
>Internal : Symbol(Internal, Decl(usage.ts, 1, 27))
|
||||
>getThing : Symbol(Internal.getThing, Decl(internal.ts, 0, 23))
|
||||
|
||||
Internal.WhichThing.A ? "foo" : "bar";
|
||||
>Internal.WhichThing.A : Symbol(Internal.WhichThing.A, Decl(internal.ts, 2, 34))
|
||||
>Internal.WhichThing : Symbol(Internal.WhichThing, Decl(internal.ts, 1, 39))
|
||||
>Internal : Symbol(Internal, Decl(usage.ts, 1, 27))
|
||||
>WhichThing : Symbol(Internal.WhichThing, Decl(internal.ts, 1, 39))
|
||||
>A : Symbol(Internal.WhichThing.A, Decl(internal.ts, 2, 34))
|
||||
}
|
||||
}
|
||||
}
|
||||
=== tests/cases/compiler/internal.ts ===
|
||||
namespace My.Internal {
|
||||
>My : Symbol(My, Decl(internal.ts, 0, 0))
|
||||
>Internal : Symbol(Internal, Decl(internal.ts, 0, 13))
|
||||
|
||||
export function getThing(): void {}
|
||||
>getThing : Symbol(getThing, Decl(internal.ts, 0, 23))
|
||||
|
||||
export const enum WhichThing {
|
||||
>WhichThing : Symbol(WhichThing, Decl(internal.ts, 1, 39))
|
||||
|
||||
A, B, C
|
||||
>A : Symbol(WhichThing.A, Decl(internal.ts, 2, 34))
|
||||
>B : Symbol(WhichThing.B, Decl(internal.ts, 3, 10))
|
||||
>C : Symbol(WhichThing.C, Decl(internal.ts, 3, 13))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
=== tests/cases/compiler/usage.ts ===
|
||||
/// <reference path="./internal.ts" />
|
||||
namespace SomeOther.Thing {
|
||||
>SomeOther : typeof SomeOther
|
||||
>Thing : typeof Thing
|
||||
|
||||
import Internal = My.Internal;
|
||||
>Internal : typeof Internal
|
||||
>My : typeof My
|
||||
>Internal : typeof Internal
|
||||
|
||||
export class Foo {
|
||||
>Foo : Foo
|
||||
|
||||
private _which: Internal.WhichThing;
|
||||
>_which : Internal.WhichThing
|
||||
>Internal : any
|
||||
>WhichThing : Internal.WhichThing
|
||||
|
||||
constructor() {
|
||||
Internal.getThing();
|
||||
>Internal.getThing() : void
|
||||
>Internal.getThing : () => void
|
||||
>Internal : typeof Internal
|
||||
>getThing : () => void
|
||||
|
||||
Internal.WhichThing.A ? "foo" : "bar";
|
||||
>Internal.WhichThing.A ? "foo" : "bar" : "foo" | "bar"
|
||||
>Internal.WhichThing.A : Internal.WhichThing.A
|
||||
>Internal.WhichThing : typeof Internal.WhichThing
|
||||
>Internal : typeof Internal
|
||||
>WhichThing : typeof Internal.WhichThing
|
||||
>A : Internal.WhichThing.A
|
||||
>"foo" : "foo"
|
||||
>"bar" : "bar"
|
||||
}
|
||||
}
|
||||
}
|
||||
=== tests/cases/compiler/internal.ts ===
|
||||
namespace My.Internal {
|
||||
>My : typeof My
|
||||
>Internal : typeof Internal
|
||||
|
||||
export function getThing(): void {}
|
||||
>getThing : () => void
|
||||
|
||||
export const enum WhichThing {
|
||||
>WhichThing : WhichThing
|
||||
|
||||
A, B, C
|
||||
>A : WhichThing.A
|
||||
>B : WhichThing.B
|
||||
>C : WhichThing.C
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
//// [literalIntersectionYieldsLiteral.ts]
|
||||
const x: { type: string } & { type: "string" } = { type: "string" };
|
||||
|
||||
|
||||
//// [literalIntersectionYieldsLiteral.js]
|
||||
var x = { type: "string" };
|
||||
@@ -0,0 +1,7 @@
|
||||
=== tests/cases/compiler/literalIntersectionYieldsLiteral.ts ===
|
||||
const x: { type: string } & { type: "string" } = { type: "string" };
|
||||
>x : Symbol(x, Decl(literalIntersectionYieldsLiteral.ts, 0, 5))
|
||||
>type : Symbol(type, Decl(literalIntersectionYieldsLiteral.ts, 0, 10))
|
||||
>type : Symbol(type, Decl(literalIntersectionYieldsLiteral.ts, 0, 29))
|
||||
>type : Symbol(type, Decl(literalIntersectionYieldsLiteral.ts, 0, 50))
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
=== tests/cases/compiler/literalIntersectionYieldsLiteral.ts ===
|
||||
const x: { type: string } & { type: "string" } = { type: "string" };
|
||||
>x : { type: string; } & { type: "string"; }
|
||||
>type : string
|
||||
>type : "string"
|
||||
>{ type: "string" } : { type: "string"; }
|
||||
>type : string
|
||||
>"string" : "string"
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
//// [nestedTypeVariableInfersLiteral.ts]
|
||||
// https://github.com/Microsoft/TypeScript/issues/19632
|
||||
declare function direct<A extends string>(a: A | A[]): Record<A, string>
|
||||
declare function nested<A extends string>(a: { fields: A }): Record<A, string>
|
||||
declare function nestedUnion<A extends string>(a: { fields: A | A[] }): Record<A, string>
|
||||
|
||||
const directUnionSingle = direct("z")
|
||||
const directUnionArray = direct(["z", "y"])
|
||||
const nestedSingle = nested({fields: "z"})
|
||||
const nestedUnionSingle = nestedUnion({fields: "z"})
|
||||
const nestedUnionArray = nestedUnion({fields: ["z", "y"]})
|
||||
|
||||
declare function hasZField(arg: { z: string }): void
|
||||
|
||||
hasZField(directUnionSingle) // ok
|
||||
hasZField(directUnionArray) // ok
|
||||
hasZField(nestedSingle) // ok
|
||||
hasZField(nestedUnionSingle) // ok
|
||||
hasZField(nestedUnionArray) // ok
|
||||
|
||||
|
||||
//// [nestedTypeVariableInfersLiteral.js]
|
||||
var directUnionSingle = direct("z");
|
||||
var directUnionArray = direct(["z", "y"]);
|
||||
var nestedSingle = nested({ fields: "z" });
|
||||
var nestedUnionSingle = nestedUnion({ fields: "z" });
|
||||
var nestedUnionArray = nestedUnion({ fields: ["z", "y"] });
|
||||
hasZField(directUnionSingle); // ok
|
||||
hasZField(directUnionArray); // ok
|
||||
hasZField(nestedSingle); // ok
|
||||
hasZField(nestedUnionSingle); // ok
|
||||
hasZField(nestedUnionArray); // ok
|
||||
@@ -0,0 +1,78 @@
|
||||
=== tests/cases/compiler/nestedTypeVariableInfersLiteral.ts ===
|
||||
// https://github.com/Microsoft/TypeScript/issues/19632
|
||||
declare function direct<A extends string>(a: A | A[]): Record<A, string>
|
||||
>direct : Symbol(direct, Decl(nestedTypeVariableInfersLiteral.ts, 0, 0))
|
||||
>A : Symbol(A, Decl(nestedTypeVariableInfersLiteral.ts, 1, 24))
|
||||
>a : Symbol(a, Decl(nestedTypeVariableInfersLiteral.ts, 1, 42))
|
||||
>A : Symbol(A, Decl(nestedTypeVariableInfersLiteral.ts, 1, 24))
|
||||
>A : Symbol(A, Decl(nestedTypeVariableInfersLiteral.ts, 1, 24))
|
||||
>Record : Symbol(Record, Decl(lib.d.ts, --, --))
|
||||
>A : Symbol(A, Decl(nestedTypeVariableInfersLiteral.ts, 1, 24))
|
||||
|
||||
declare function nested<A extends string>(a: { fields: A }): Record<A, string>
|
||||
>nested : Symbol(nested, Decl(nestedTypeVariableInfersLiteral.ts, 1, 72))
|
||||
>A : Symbol(A, Decl(nestedTypeVariableInfersLiteral.ts, 2, 24))
|
||||
>a : Symbol(a, Decl(nestedTypeVariableInfersLiteral.ts, 2, 42))
|
||||
>fields : Symbol(fields, Decl(nestedTypeVariableInfersLiteral.ts, 2, 46))
|
||||
>A : Symbol(A, Decl(nestedTypeVariableInfersLiteral.ts, 2, 24))
|
||||
>Record : Symbol(Record, Decl(lib.d.ts, --, --))
|
||||
>A : Symbol(A, Decl(nestedTypeVariableInfersLiteral.ts, 2, 24))
|
||||
|
||||
declare function nestedUnion<A extends string>(a: { fields: A | A[] }): Record<A, string>
|
||||
>nestedUnion : Symbol(nestedUnion, Decl(nestedTypeVariableInfersLiteral.ts, 2, 78))
|
||||
>A : Symbol(A, Decl(nestedTypeVariableInfersLiteral.ts, 3, 29))
|
||||
>a : Symbol(a, Decl(nestedTypeVariableInfersLiteral.ts, 3, 47))
|
||||
>fields : Symbol(fields, Decl(nestedTypeVariableInfersLiteral.ts, 3, 51))
|
||||
>A : Symbol(A, Decl(nestedTypeVariableInfersLiteral.ts, 3, 29))
|
||||
>A : Symbol(A, Decl(nestedTypeVariableInfersLiteral.ts, 3, 29))
|
||||
>Record : Symbol(Record, Decl(lib.d.ts, --, --))
|
||||
>A : Symbol(A, Decl(nestedTypeVariableInfersLiteral.ts, 3, 29))
|
||||
|
||||
const directUnionSingle = direct("z")
|
||||
>directUnionSingle : Symbol(directUnionSingle, Decl(nestedTypeVariableInfersLiteral.ts, 5, 5))
|
||||
>direct : Symbol(direct, Decl(nestedTypeVariableInfersLiteral.ts, 0, 0))
|
||||
|
||||
const directUnionArray = direct(["z", "y"])
|
||||
>directUnionArray : Symbol(directUnionArray, Decl(nestedTypeVariableInfersLiteral.ts, 6, 5))
|
||||
>direct : Symbol(direct, Decl(nestedTypeVariableInfersLiteral.ts, 0, 0))
|
||||
|
||||
const nestedSingle = nested({fields: "z"})
|
||||
>nestedSingle : Symbol(nestedSingle, Decl(nestedTypeVariableInfersLiteral.ts, 7, 5))
|
||||
>nested : Symbol(nested, Decl(nestedTypeVariableInfersLiteral.ts, 1, 72))
|
||||
>fields : Symbol(fields, Decl(nestedTypeVariableInfersLiteral.ts, 7, 29))
|
||||
|
||||
const nestedUnionSingle = nestedUnion({fields: "z"})
|
||||
>nestedUnionSingle : Symbol(nestedUnionSingle, Decl(nestedTypeVariableInfersLiteral.ts, 8, 5))
|
||||
>nestedUnion : Symbol(nestedUnion, Decl(nestedTypeVariableInfersLiteral.ts, 2, 78))
|
||||
>fields : Symbol(fields, Decl(nestedTypeVariableInfersLiteral.ts, 8, 39))
|
||||
|
||||
const nestedUnionArray = nestedUnion({fields: ["z", "y"]})
|
||||
>nestedUnionArray : Symbol(nestedUnionArray, Decl(nestedTypeVariableInfersLiteral.ts, 9, 5))
|
||||
>nestedUnion : Symbol(nestedUnion, Decl(nestedTypeVariableInfersLiteral.ts, 2, 78))
|
||||
>fields : Symbol(fields, Decl(nestedTypeVariableInfersLiteral.ts, 9, 38))
|
||||
|
||||
declare function hasZField(arg: { z: string }): void
|
||||
>hasZField : Symbol(hasZField, Decl(nestedTypeVariableInfersLiteral.ts, 9, 58))
|
||||
>arg : Symbol(arg, Decl(nestedTypeVariableInfersLiteral.ts, 11, 27))
|
||||
>z : Symbol(z, Decl(nestedTypeVariableInfersLiteral.ts, 11, 33))
|
||||
|
||||
hasZField(directUnionSingle) // ok
|
||||
>hasZField : Symbol(hasZField, Decl(nestedTypeVariableInfersLiteral.ts, 9, 58))
|
||||
>directUnionSingle : Symbol(directUnionSingle, Decl(nestedTypeVariableInfersLiteral.ts, 5, 5))
|
||||
|
||||
hasZField(directUnionArray) // ok
|
||||
>hasZField : Symbol(hasZField, Decl(nestedTypeVariableInfersLiteral.ts, 9, 58))
|
||||
>directUnionArray : Symbol(directUnionArray, Decl(nestedTypeVariableInfersLiteral.ts, 6, 5))
|
||||
|
||||
hasZField(nestedSingle) // ok
|
||||
>hasZField : Symbol(hasZField, Decl(nestedTypeVariableInfersLiteral.ts, 9, 58))
|
||||
>nestedSingle : Symbol(nestedSingle, Decl(nestedTypeVariableInfersLiteral.ts, 7, 5))
|
||||
|
||||
hasZField(nestedUnionSingle) // ok
|
||||
>hasZField : Symbol(hasZField, Decl(nestedTypeVariableInfersLiteral.ts, 9, 58))
|
||||
>nestedUnionSingle : Symbol(nestedUnionSingle, Decl(nestedTypeVariableInfersLiteral.ts, 8, 5))
|
||||
|
||||
hasZField(nestedUnionArray) // ok
|
||||
>hasZField : Symbol(hasZField, Decl(nestedTypeVariableInfersLiteral.ts, 9, 58))
|
||||
>nestedUnionArray : Symbol(nestedUnionArray, Decl(nestedTypeVariableInfersLiteral.ts, 9, 5))
|
||||
|
||||
@@ -0,0 +1,100 @@
|
||||
=== tests/cases/compiler/nestedTypeVariableInfersLiteral.ts ===
|
||||
// https://github.com/Microsoft/TypeScript/issues/19632
|
||||
declare function direct<A extends string>(a: A | A[]): Record<A, string>
|
||||
>direct : <A extends string>(a: A | A[]) => Record<A, string>
|
||||
>A : A
|
||||
>a : A | A[]
|
||||
>A : A
|
||||
>A : A
|
||||
>Record : Record<K, T>
|
||||
>A : A
|
||||
|
||||
declare function nested<A extends string>(a: { fields: A }): Record<A, string>
|
||||
>nested : <A extends string>(a: { fields: A; }) => Record<A, string>
|
||||
>A : A
|
||||
>a : { fields: A; }
|
||||
>fields : A
|
||||
>A : A
|
||||
>Record : Record<K, T>
|
||||
>A : A
|
||||
|
||||
declare function nestedUnion<A extends string>(a: { fields: A | A[] }): Record<A, string>
|
||||
>nestedUnion : <A extends string>(a: { fields: A | A[]; }) => Record<A, string>
|
||||
>A : A
|
||||
>a : { fields: A | A[]; }
|
||||
>fields : A | A[]
|
||||
>A : A
|
||||
>A : A
|
||||
>Record : Record<K, T>
|
||||
>A : A
|
||||
|
||||
const directUnionSingle = direct("z")
|
||||
>directUnionSingle : Record<"z", string>
|
||||
>direct("z") : Record<"z", string>
|
||||
>direct : <A extends string>(a: A | A[]) => Record<A, string>
|
||||
>"z" : "z"
|
||||
|
||||
const directUnionArray = direct(["z", "y"])
|
||||
>directUnionArray : Record<"z" | "y", string>
|
||||
>direct(["z", "y"]) : Record<"z" | "y", string>
|
||||
>direct : <A extends string>(a: A | A[]) => Record<A, string>
|
||||
>["z", "y"] : ("z" | "y")[]
|
||||
>"z" : "z"
|
||||
>"y" : "y"
|
||||
|
||||
const nestedSingle = nested({fields: "z"})
|
||||
>nestedSingle : Record<"z", string>
|
||||
>nested({fields: "z"}) : Record<"z", string>
|
||||
>nested : <A extends string>(a: { fields: A; }) => Record<A, string>
|
||||
>{fields: "z"} : { fields: "z"; }
|
||||
>fields : string
|
||||
>"z" : "z"
|
||||
|
||||
const nestedUnionSingle = nestedUnion({fields: "z"})
|
||||
>nestedUnionSingle : Record<"z", string>
|
||||
>nestedUnion({fields: "z"}) : Record<"z", string>
|
||||
>nestedUnion : <A extends string>(a: { fields: A | A[]; }) => Record<A, string>
|
||||
>{fields: "z"} : { fields: "z"; }
|
||||
>fields : string
|
||||
>"z" : "z"
|
||||
|
||||
const nestedUnionArray = nestedUnion({fields: ["z", "y"]})
|
||||
>nestedUnionArray : Record<"z" | "y", string>
|
||||
>nestedUnion({fields: ["z", "y"]}) : Record<"z" | "y", string>
|
||||
>nestedUnion : <A extends string>(a: { fields: A | A[]; }) => Record<A, string>
|
||||
>{fields: ["z", "y"]} : { fields: ("z" | "y")[]; }
|
||||
>fields : ("z" | "y")[]
|
||||
>["z", "y"] : ("z" | "y")[]
|
||||
>"z" : "z"
|
||||
>"y" : "y"
|
||||
|
||||
declare function hasZField(arg: { z: string }): void
|
||||
>hasZField : (arg: { z: string; }) => void
|
||||
>arg : { z: string; }
|
||||
>z : string
|
||||
|
||||
hasZField(directUnionSingle) // ok
|
||||
>hasZField(directUnionSingle) : void
|
||||
>hasZField : (arg: { z: string; }) => void
|
||||
>directUnionSingle : Record<"z", string>
|
||||
|
||||
hasZField(directUnionArray) // ok
|
||||
>hasZField(directUnionArray) : void
|
||||
>hasZField : (arg: { z: string; }) => void
|
||||
>directUnionArray : Record<"z" | "y", string>
|
||||
|
||||
hasZField(nestedSingle) // ok
|
||||
>hasZField(nestedSingle) : void
|
||||
>hasZField : (arg: { z: string; }) => void
|
||||
>nestedSingle : Record<"z", string>
|
||||
|
||||
hasZField(nestedUnionSingle) // ok
|
||||
>hasZField(nestedUnionSingle) : void
|
||||
>hasZField : (arg: { z: string; }) => void
|
||||
>nestedUnionSingle : Record<"z", string>
|
||||
|
||||
hasZField(nestedUnionArray) // ok
|
||||
>hasZField(nestedUnionArray) : void
|
||||
>hasZField : (arg: { z: string; }) => void
|
||||
>nestedUnionArray : Record<"z" | "y", string>
|
||||
|
||||
@@ -571,8 +571,8 @@ let shortCutted: { a: number, b: string } = { ...o, a }
|
||||
|
||||
// non primitive
|
||||
let spreadNonPrimitive = { ...<object>{}};
|
||||
>spreadNonPrimitive : object
|
||||
>{ ...<object>{}} : object
|
||||
>spreadNonPrimitive : {}
|
||||
>{ ...<object>{}} : {}
|
||||
><object>{} : object
|
||||
>{} : {}
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ tests/cases/conformance/types/spread/objectSpreadNegative.ts(38,19): error TS269
|
||||
tests/cases/conformance/types/spread/objectSpreadNegative.ts(43,1): error TS2349: Cannot invoke an expression whose type lacks a call signature. Type '{}' has no compatible call signatures.
|
||||
tests/cases/conformance/types/spread/objectSpreadNegative.ts(47,12): error TS2339: Property 'b' does not exist on type '{}'.
|
||||
tests/cases/conformance/types/spread/objectSpreadNegative.ts(53,9): error TS2339: Property 'm' does not exist on type '{ p: number; }'.
|
||||
tests/cases/conformance/types/spread/objectSpreadNegative.ts(58,11): error TS2339: Property 'a' does not exist on type 'object'.
|
||||
tests/cases/conformance/types/spread/objectSpreadNegative.ts(58,11): error TS2339: Property 'a' does not exist on type '{}'.
|
||||
tests/cases/conformance/types/spread/objectSpreadNegative.ts(62,14): error TS2698: Spread types may only be created from object types.
|
||||
tests/cases/conformance/types/spread/objectSpreadNegative.ts(65,14): error TS2698: Spread types may only be created from object types.
|
||||
tests/cases/conformance/types/spread/objectSpreadNegative.ts(79,37): error TS2322: Type '{ a: string; b: string; extra: string; }' is not assignable to type 'A'.
|
||||
@@ -117,7 +117,7 @@ tests/cases/conformance/types/spread/objectSpreadNegative.ts(84,7): error TS2322
|
||||
let spreadObj = { ...obj };
|
||||
spreadObj.a; // error 'a' is not in {}
|
||||
~
|
||||
!!! error TS2339: Property 'a' does not exist on type 'object'.
|
||||
!!! error TS2339: Property 'a' does not exist on type '{}'.
|
||||
|
||||
// generics
|
||||
function f<T, U>(t: T, u: U) {
|
||||
|
||||
@@ -222,13 +222,13 @@ let obj: object = { a: 123 };
|
||||
>123 : 123
|
||||
|
||||
let spreadObj = { ...obj };
|
||||
>spreadObj : object
|
||||
>{ ...obj } : object
|
||||
>spreadObj : {}
|
||||
>{ ...obj } : {}
|
||||
>obj : object
|
||||
|
||||
spreadObj.a; // error 'a' is not in {}
|
||||
>spreadObj.a : any
|
||||
>spreadObj : object
|
||||
>spreadObj : {}
|
||||
>a : any
|
||||
|
||||
// generics
|
||||
|
||||
@@ -3,8 +3,8 @@ tests/cases/conformance/parser/ecmascriptnext/numericSeparators/2.ts(1,3): error
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/3.ts(1,2): error TS6188: Numeric separators are not allowed here.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/3.ts(1,3): error TS1005: ';' expected.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/3.ts(1,3): error TS2304: Cannot find name 'B0101'.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/4.ts(1,6): error TS6188: Numeric separators are not allowed here.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/5.ts(1,13): error TS6188: Numeric separators are not allowed here.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/4.ts(1,6): error TS6189: Multiple consecutive numeric separators are not permitted.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/5.ts(1,13): error TS6189: Multiple consecutive numeric separators are not permitted.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/6.ts(1,3): error TS6188: Numeric separators are not allowed here.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/6.ts(1,4): error TS6188: Numeric separators are not allowed here.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/6.ts(1,5): error TS6188: Numeric separators are not allowed here.
|
||||
@@ -32,12 +32,12 @@ tests/cases/conformance/parser/ecmascriptnext/numericSeparators/6.ts(1,5): error
|
||||
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/4.ts (1 errors) ====
|
||||
0b01__11
|
||||
~
|
||||
!!! error TS6188: Numeric separators are not allowed here.
|
||||
!!! error TS6189: Multiple consecutive numeric separators are not permitted.
|
||||
|
||||
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/5.ts (1 errors) ====
|
||||
0B0110_0110__
|
||||
~
|
||||
!!! error TS6188: Numeric separators are not allowed here.
|
||||
!!! error TS6189: Multiple consecutive numeric separators are not permitted.
|
||||
|
||||
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/6.ts (3 errors) ====
|
||||
0b___0111010_0101_1
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/1.ts(1,1): error TS2304: Cannot find name '_10'.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/10.ts(1,4): error TS6188: Numeric separators are not allowed here.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/11.ts(1,5): error TS6188: Numeric separators are not allowed here.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/11.ts(1,5): error TS6189: Multiple consecutive numeric separators are not permitted.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/12.ts(1,2): error TS6188: Numeric separators are not allowed here.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/13.ts(1,3): error TS6188: Numeric separators are not allowed here.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/14.ts(1,4): error TS6188: Numeric separators are not allowed here.
|
||||
@@ -8,29 +8,29 @@ tests/cases/conformance/parser/ecmascriptnext/numericSeparators/15.ts(1,5): erro
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/16.ts(1,1): error TS2304: Cannot find name '_0'.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/16.ts(1,3): error TS1005: ';' expected.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/17.ts(1,6): error TS6188: Numeric separators are not allowed here.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/18.ts(1,3): error TS6188: Numeric separators are not allowed here.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/19.ts(1,5): error TS6188: Numeric separators are not allowed here.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/18.ts(1,3): error TS6189: Multiple consecutive numeric separators are not permitted.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/19.ts(1,5): error TS6189: Multiple consecutive numeric separators are not permitted.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/2.ts(1,3): error TS6188: Numeric separators are not allowed here.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/20.ts(1,8): error TS6188: Numeric separators are not allowed here.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/20.ts(1,8): error TS6189: Multiple consecutive numeric separators are not permitted.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/21.ts(1,2): error TS6188: Numeric separators are not allowed here.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/22.ts(1,4): error TS6188: Numeric separators are not allowed here.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/23.ts(1,5): error TS6188: Numeric separators are not allowed here.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/24.ts(1,6): error TS6188: Numeric separators are not allowed here.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/24.ts(1,6): error TS6189: Multiple consecutive numeric separators are not permitted.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/25.ts(1,2): error TS6188: Numeric separators are not allowed here.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/26.ts(1,3): error TS6188: Numeric separators are not allowed here.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/27.ts(1,4): error TS6188: Numeric separators are not allowed here.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/28.ts(1,6): error TS6188: Numeric separators are not allowed here.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/29.ts(1,1): error TS2304: Cannot find name '_0'.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/29.ts(1,3): error TS1005: ';' expected.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/3.ts(1,3): error TS6188: Numeric separators are not allowed here.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/3.ts(1,3): error TS6189: Multiple consecutive numeric separators are not permitted.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/30.ts(1,7): error TS6188: Numeric separators are not allowed here.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/31.ts(1,3): error TS6188: Numeric separators are not allowed here.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/32.ts(1,5): error TS6188: Numeric separators are not allowed here.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/33.ts(1,9): error TS6188: Numeric separators are not allowed here.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/31.ts(1,3): error TS6189: Multiple consecutive numeric separators are not permitted.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/32.ts(1,5): error TS6189: Multiple consecutive numeric separators are not permitted.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/33.ts(1,9): error TS6189: Multiple consecutive numeric separators are not permitted.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/34.ts(1,2): error TS6188: Numeric separators are not allowed here.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/35.ts(1,4): error TS6188: Numeric separators are not allowed here.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/36.ts(1,5): error TS6188: Numeric separators are not allowed here.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/37.ts(1,6): error TS6188: Numeric separators are not allowed here.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/37.ts(1,6): error TS6189: Multiple consecutive numeric separators are not permitted.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/38.ts(1,2): error TS6188: Numeric separators are not allowed here.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/39.ts(1,3): error TS6188: Numeric separators are not allowed here.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/4.ts(1,2): error TS6188: Numeric separators are not allowed here.
|
||||
@@ -39,9 +39,9 @@ tests/cases/conformance/parser/ecmascriptnext/numericSeparators/41.ts(1,6): erro
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/42.ts(1,1): error TS2304: Cannot find name '_0'.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/42.ts(1,3): error TS1005: ';' expected.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/43.ts(1,7): error TS6188: Numeric separators are not allowed here.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/44.ts(1,3): error TS6188: Numeric separators are not allowed here.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/45.ts(1,5): error TS6188: Numeric separators are not allowed here.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/46.ts(1,9): error TS6188: Numeric separators are not allowed here.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/44.ts(1,3): error TS6189: Multiple consecutive numeric separators are not permitted.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/45.ts(1,5): error TS6189: Multiple consecutive numeric separators are not permitted.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/46.ts(1,9): error TS6189: Multiple consecutive numeric separators are not permitted.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/47.ts(1,1): error TS1128: Declaration or statement expected.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/47.ts(1,2): error TS2304: Cannot find name '_'.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/48.ts(1,2): error TS1005: ';' expected.
|
||||
@@ -52,8 +52,8 @@ tests/cases/conformance/parser/ecmascriptnext/numericSeparators/5.ts(1,3): error
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/50.ts(1,5): error TS6188: Numeric separators are not allowed here.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/50.ts(1,6): error TS1124: Digit expected.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/51.ts(1,3): error TS6188: Numeric separators are not allowed here.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/6.ts(1,5): error TS6188: Numeric separators are not allowed here.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/7.ts(1,5): error TS6188: Numeric separators are not allowed here.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/6.ts(1,5): error TS6189: Multiple consecutive numeric separators are not permitted.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/7.ts(1,5): error TS6189: Multiple consecutive numeric separators are not permitted.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/8.ts(1,2): error TS6188: Numeric separators are not allowed here.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/9.ts(1,3): error TS6188: Numeric separators are not allowed here.
|
||||
|
||||
@@ -71,7 +71,7 @@ tests/cases/conformance/parser/ecmascriptnext/numericSeparators/9.ts(1,3): error
|
||||
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/3.ts (1 errors) ====
|
||||
1__0
|
||||
~
|
||||
!!! error TS6188: Numeric separators are not allowed here.
|
||||
!!! error TS6189: Multiple consecutive numeric separators are not permitted.
|
||||
|
||||
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/4.ts (1 errors) ====
|
||||
0_.0
|
||||
@@ -86,12 +86,12 @@ tests/cases/conformance/parser/ecmascriptnext/numericSeparators/9.ts(1,3): error
|
||||
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/6.ts (1 errors) ====
|
||||
0.0__0
|
||||
~
|
||||
!!! error TS6188: Numeric separators are not allowed here.
|
||||
!!! error TS6189: Multiple consecutive numeric separators are not permitted.
|
||||
|
||||
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/7.ts (1 errors) ====
|
||||
0.0__
|
||||
~
|
||||
!!! error TS6188: Numeric separators are not allowed here.
|
||||
!!! error TS6189: Multiple consecutive numeric separators are not permitted.
|
||||
|
||||
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/8.ts (1 errors) ====
|
||||
0_e0
|
||||
@@ -111,7 +111,7 @@ tests/cases/conformance/parser/ecmascriptnext/numericSeparators/9.ts(1,3): error
|
||||
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/11.ts (1 errors) ====
|
||||
0e0__0
|
||||
~
|
||||
!!! error TS6188: Numeric separators are not allowed here.
|
||||
!!! error TS6189: Multiple consecutive numeric separators are not permitted.
|
||||
|
||||
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/12.ts (1 errors) ====
|
||||
0_.0e0
|
||||
@@ -148,17 +148,17 @@ tests/cases/conformance/parser/ecmascriptnext/numericSeparators/9.ts(1,3): error
|
||||
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/18.ts (1 errors) ====
|
||||
0__0.0e0
|
||||
~
|
||||
!!! error TS6188: Numeric separators are not allowed here.
|
||||
!!! error TS6189: Multiple consecutive numeric separators are not permitted.
|
||||
|
||||
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/19.ts (1 errors) ====
|
||||
0.0__0e0
|
||||
~
|
||||
!!! error TS6188: Numeric separators are not allowed here.
|
||||
!!! error TS6189: Multiple consecutive numeric separators are not permitted.
|
||||
|
||||
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/20.ts (1 errors) ====
|
||||
0.00e0__0
|
||||
~
|
||||
!!! error TS6188: Numeric separators are not allowed here.
|
||||
!!! error TS6189: Multiple consecutive numeric separators are not permitted.
|
||||
|
||||
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/21.ts (1 errors) ====
|
||||
0_e+0
|
||||
@@ -178,7 +178,7 @@ tests/cases/conformance/parser/ecmascriptnext/numericSeparators/9.ts(1,3): error
|
||||
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/24.ts (1 errors) ====
|
||||
0e+0__0
|
||||
~
|
||||
!!! error TS6188: Numeric separators are not allowed here.
|
||||
!!! error TS6189: Multiple consecutive numeric separators are not permitted.
|
||||
|
||||
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/25.ts (1 errors) ====
|
||||
0_.0e+0
|
||||
@@ -215,17 +215,17 @@ tests/cases/conformance/parser/ecmascriptnext/numericSeparators/9.ts(1,3): error
|
||||
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/31.ts (1 errors) ====
|
||||
0__0.0e+0
|
||||
~
|
||||
!!! error TS6188: Numeric separators are not allowed here.
|
||||
!!! error TS6189: Multiple consecutive numeric separators are not permitted.
|
||||
|
||||
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/32.ts (1 errors) ====
|
||||
0.0__0e+0
|
||||
~
|
||||
!!! error TS6188: Numeric separators are not allowed here.
|
||||
!!! error TS6189: Multiple consecutive numeric separators are not permitted.
|
||||
|
||||
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/33.ts (1 errors) ====
|
||||
0.00e+0__0
|
||||
~
|
||||
!!! error TS6188: Numeric separators are not allowed here.
|
||||
!!! error TS6189: Multiple consecutive numeric separators are not permitted.
|
||||
|
||||
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/34.ts (1 errors) ====
|
||||
0_e+0
|
||||
@@ -245,7 +245,7 @@ tests/cases/conformance/parser/ecmascriptnext/numericSeparators/9.ts(1,3): error
|
||||
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/37.ts (1 errors) ====
|
||||
0e-0__0
|
||||
~
|
||||
!!! error TS6188: Numeric separators are not allowed here.
|
||||
!!! error TS6189: Multiple consecutive numeric separators are not permitted.
|
||||
|
||||
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/38.ts (1 errors) ====
|
||||
0_.0e-0
|
||||
@@ -282,17 +282,17 @@ tests/cases/conformance/parser/ecmascriptnext/numericSeparators/9.ts(1,3): error
|
||||
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/44.ts (1 errors) ====
|
||||
0__0.0e-0
|
||||
~
|
||||
!!! error TS6188: Numeric separators are not allowed here.
|
||||
!!! error TS6189: Multiple consecutive numeric separators are not permitted.
|
||||
|
||||
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/45.ts (1 errors) ====
|
||||
0.0__0e-0
|
||||
~
|
||||
!!! error TS6188: Numeric separators are not allowed here.
|
||||
!!! error TS6189: Multiple consecutive numeric separators are not permitted.
|
||||
|
||||
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/46.ts (1 errors) ====
|
||||
0.00e-0__0
|
||||
~
|
||||
!!! error TS6188: Numeric separators are not allowed here.
|
||||
!!! error TS6189: Multiple consecutive numeric separators are not permitted.
|
||||
|
||||
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/47.ts (2 errors) ====
|
||||
._
|
||||
|
||||
@@ -3,8 +3,8 @@ tests/cases/conformance/parser/ecmascriptnext/numericSeparators/2.ts(1,3): error
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/3.ts(1,2): error TS6188: Numeric separators are not allowed here.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/3.ts(1,3): error TS1005: ';' expected.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/3.ts(1,3): error TS2304: Cannot find name 'X0101'.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/4.ts(1,6): error TS6188: Numeric separators are not allowed here.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/5.ts(1,13): error TS6188: Numeric separators are not allowed here.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/4.ts(1,6): error TS6189: Multiple consecutive numeric separators are not permitted.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/5.ts(1,13): error TS6189: Multiple consecutive numeric separators are not permitted.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/6.ts(1,3): error TS6188: Numeric separators are not allowed here.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/6.ts(1,4): error TS6188: Numeric separators are not allowed here.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/6.ts(1,5): error TS6188: Numeric separators are not allowed here.
|
||||
@@ -32,12 +32,12 @@ tests/cases/conformance/parser/ecmascriptnext/numericSeparators/6.ts(1,5): error
|
||||
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/4.ts (1 errors) ====
|
||||
0x01__11
|
||||
~
|
||||
!!! error TS6188: Numeric separators are not allowed here.
|
||||
!!! error TS6189: Multiple consecutive numeric separators are not permitted.
|
||||
|
||||
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/5.ts (1 errors) ====
|
||||
0X0110_0110__
|
||||
~
|
||||
!!! error TS6188: Numeric separators are not allowed here.
|
||||
!!! error TS6189: Multiple consecutive numeric separators are not permitted.
|
||||
|
||||
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/6.ts (3 errors) ====
|
||||
0x___0111010_0101_1
|
||||
|
||||
@@ -3,8 +3,8 @@ tests/cases/conformance/parser/ecmascriptnext/numericSeparators/2.ts(1,3): error
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/3.ts(1,2): error TS6188: Numeric separators are not allowed here.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/3.ts(1,3): error TS1005: ';' expected.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/3.ts(1,3): error TS2304: Cannot find name 'O0101'.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/4.ts(1,6): error TS6188: Numeric separators are not allowed here.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/5.ts(1,13): error TS6188: Numeric separators are not allowed here.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/4.ts(1,6): error TS6189: Multiple consecutive numeric separators are not permitted.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/5.ts(1,13): error TS6189: Multiple consecutive numeric separators are not permitted.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/6.ts(1,3): error TS6188: Numeric separators are not allowed here.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/6.ts(1,4): error TS6188: Numeric separators are not allowed here.
|
||||
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/6.ts(1,5): error TS6188: Numeric separators are not allowed here.
|
||||
@@ -32,12 +32,12 @@ tests/cases/conformance/parser/ecmascriptnext/numericSeparators/6.ts(1,5): error
|
||||
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/4.ts (1 errors) ====
|
||||
0o01__11
|
||||
~
|
||||
!!! error TS6188: Numeric separators are not allowed here.
|
||||
!!! error TS6189: Multiple consecutive numeric separators are not permitted.
|
||||
|
||||
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/5.ts (1 errors) ====
|
||||
0O0110_0110__
|
||||
~
|
||||
!!! error TS6188: Numeric separators are not allowed here.
|
||||
!!! error TS6189: Multiple consecutive numeric separators are not permitted.
|
||||
|
||||
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/6.ts (3 errors) ====
|
||||
0o___0111010_0101_1
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
//// [parserIsClassMemberStart.ts]
|
||||
class C {
|
||||
type!: number;
|
||||
}
|
||||
|
||||
|
||||
//// [parserIsClassMemberStart.js]
|
||||
var C = /** @class */ (function () {
|
||||
function C() {
|
||||
}
|
||||
return C;
|
||||
}());
|
||||
@@ -0,0 +1,8 @@
|
||||
=== tests/cases/compiler/parserIsClassMemberStart.ts ===
|
||||
class C {
|
||||
>C : Symbol(C, Decl(parserIsClassMemberStart.ts, 0, 0))
|
||||
|
||||
type!: number;
|
||||
>type : Symbol(C.type, Decl(parserIsClassMemberStart.ts, 0, 9))
|
||||
}
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
=== tests/cases/compiler/parserIsClassMemberStart.ts ===
|
||||
class C {
|
||||
>C : C
|
||||
|
||||
type!: number;
|
||||
>type : number
|
||||
}
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
//// [spreadNonPrimitive.ts]
|
||||
declare let o: object;
|
||||
const x: { a: number, b: number } = { a: 1, ...o, b: 2 };
|
||||
|
||||
|
||||
//// [spreadNonPrimitive.js]
|
||||
var __assign = (this && this.__assign) || Object.assign || function(t) {
|
||||
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
||||
s = arguments[i];
|
||||
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
||||
t[p] = s[p];
|
||||
}
|
||||
return t;
|
||||
};
|
||||
var x = __assign({ a: 1 }, o, { b: 2 });
|
||||
@@ -0,0 +1,12 @@
|
||||
=== tests/cases/conformance/types/spread/spreadNonPrimitive.ts ===
|
||||
declare let o: object;
|
||||
>o : Symbol(o, Decl(spreadNonPrimitive.ts, 0, 11))
|
||||
|
||||
const x: { a: number, b: number } = { a: 1, ...o, b: 2 };
|
||||
>x : Symbol(x, Decl(spreadNonPrimitive.ts, 1, 5))
|
||||
>a : Symbol(a, Decl(spreadNonPrimitive.ts, 1, 10))
|
||||
>b : Symbol(b, Decl(spreadNonPrimitive.ts, 1, 21))
|
||||
>a : Symbol(a, Decl(spreadNonPrimitive.ts, 1, 37))
|
||||
>o : Symbol(o, Decl(spreadNonPrimitive.ts, 0, 11))
|
||||
>b : Symbol(b, Decl(spreadNonPrimitive.ts, 1, 49))
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
=== tests/cases/conformance/types/spread/spreadNonPrimitive.ts ===
|
||||
declare let o: object;
|
||||
>o : object
|
||||
|
||||
const x: { a: number, b: number } = { a: 1, ...o, b: 2 };
|
||||
>x : { a: number; b: number; }
|
||||
>a : number
|
||||
>b : number
|
||||
>{ a: 1, ...o, b: 2 } : { b: number; a: number; }
|
||||
>a : number
|
||||
>1 : 1
|
||||
>o : object
|
||||
>b : number
|
||||
>2 : 2
|
||||
|
||||
@@ -23,4 +23,4 @@ namespace M {
|
||||
public class class1 implements interface1
|
||||
{
|
||||
property1: boolean;
|
||||
}
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user